Unicode PHP源文件

| 对于当前正在处理的项目,我需要向一些php文件中添加一些unicode字符。 因此,我当然需要使用unicode编码。 这让我感到奇怪: 是什么让我无法对所有PHP文件使用unicode?     
已邀请:
没有什么可以阻止您在所有php文件中使用unicode,只有在您这样做的情况下,如果设置的unicode设置会干扰脚本处理,则可能需要编辑脚本。     
使用UTF8编码的源文件时,需要记住一些事情: 一些编辑器可能会在文件的开头添加BOM表-这可能会损坏脚本输出-您应保存没有BOM表的文件。 strlen和其他字符串函数可能无法按您预期的那样工作-您应将多字节字符串函数用于字符串长度等:http://php.net/manual/en/book.mbstring.php regex需要u修饰符才能使用unicode字符。 使用文件时应小心-注意当前的编码,因为当文件不包含BOM(请参阅#1)时,编辑器可能会以系统默认编码打开它。 某些源代码工具可能无法正确使用UTF8文件(因为它们不包含BOM表,但是即使其中包含文件,它们中的一些也无法正常工作)。 根据我的经验,我可以说有时最好将字符串存储在资源(文本文件等)中,而不要在代码文件中使用UTF8,但这有时是可以的-这取决于您是否遇到问题。     
什么是“ Unicode编码”? Unicode是一个字符集。 Unicode和字节之间有许多编码,其中许多仅映射可能字符的子集。 当您想在PHP脚本中使用非ASCII Unicode字符时,通常的最佳编码选择是UTF-8,因为它是ASCII超集编码(即,每个字节的下128个值始终表示标准ASCII字符),仍然可以表示任何Unicode字符。与许多其他面向字节的工具一样,PHP只能可靠地使用ASCII超集编码。 如果用“ Unicode编码”来表示记事本和其他Windows工具所说的“ Unicode”,那是一个完全不同的主张。对于正确称为UTF-16LE编码的名称,这是一个令人误解的名称。此编码的每个代码单位宽度为2字节,这意味着例如普通ASCII字符之间出现零字节。它不是ASCII超集,因此PHP和其他基于字节的工具无法直接对其进行大量处理。 在基于Windows的编辑器中保存脚本时,请考虑保存为UTF-8(不包含BOM),并使用UTF-8内容类型字符集为页面提供服务。尽管它是Windows,Java和JavaScript的默认内存表示形式,但UTF-16LE几乎零使用存储文件或服务网页。     
  是什么使我无法对所有PHP文件都使用Unicode? 具体的编码可能。 PHP本身并不专门处理文件输入,而只是将其视为二进制序列。 在源文件级别上与PHP兼容的唯一Unicode编码是UTF-8。 注意不要用UTF-8-BOM保存php文件。 PHP确实将其视为标准文本并将其输出,因为它在ѭ0标记之前:
{UTF8-BOM}<?php
输出是不可见的,但其字节长度为3,导致报头已发送错误或在DOM内插入文本节点(不希望出现这些错误)。     

要回复问题请先登录注册