我目前正在进行的项目需要在一些php文件中添加一些unicode字符。
所以我需要使用unicode编码。
这让我想到了一个问题:
什么阻止我在所有的PHP文件中使用unicode?
没有任何阻止您在所有php文件中使用Unicode,但如果这样做,则可能需要编辑脚本,因为设置的Unicode设置会干扰脚本处理。
我为什么不能在所有的PHP文件中都使用Unicode呢?
具体的编码方式可能会有影响。PHP本身并不专门处理文件输入,而是将其视为二进制序列。
唯一与PHP源文件级兼容的Unicode编码是UTF-8。
注意不要将php文件保存为UTF-8-BOM格式。因为它位于开头的<?php
标记之前,PHP会将其视为标准文本并输出。
{UTF8-BOM}<?php
什么是“Unicode编码”?
Unicode是一个字符集;在Unicode和字节之间有许多编码方式,其中许多只映射可能字符的子集。
当您想在PHP脚本中使用非ASCII Unicode字符时,通常最好的编码选择是UTF-8,因为它是一个ASCII超集编码(即每个字节的较低128个值始终表示标准ASCII字符),可以表示任何Unicode字符。像许多其他面向字节的工具一样,PHP只能可靠地使用ASCII超集编码。
如果您所说的“Unicode编码”是指记事本和其他Windows工具称为“Unicode”的东西,那就是完全不同的命题。这是对UTF-16LE编码的错误称呼。该编码具有每个代码单元两个字节的宽度,这意味着例如普通ASCII字符之间没有字节。它不是ASCII超集,因此PHP和其他基于字节的工具无法直接处理它。
在Windows编辑器中保存脚本时,请尝试以UTF-8(无BOM)格式保存,并使用UTF-8 Content-Type字符集提供页面。虽然它是Windows、Java和JavaScript的默认内存表示,但UTF-16LE对于存储文件或提供网页几乎没有用处。