对于我正在进行的项目,我需要在某些php文件中添加一些unicode字符。
所以我当然需要使用unicode编码。
这让我想知道:
是什么阻止了我对所有PHP文件使用unicode?
答案 0 :(得分:5)
没有什么可以阻止你在所有的php文件中使用unicode,只有你这样做时,如果设置的unicode设置干扰了脚本处理,你可能需要编辑你的脚本。
答案 1 :(得分:3)
使用UTF8编码的源文件时需要记住一些事项:
根据我的经验,我可以说有时候将字符串存储在资源(文本文件等)中并且不在代码文件中使用UTF8会更好,但有时候它是正常的 - 这取决于你是否遇到问题或不。
答案 2 :(得分:1)
什么是“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 Content-Type字符集为您的页面提供服务。虽然它是Windows,Java和JavaScript的默认内存表示形式,但UTF-16LE在存储文件或提供网页方面几乎没有用。
答案 3 :(得分:1)
什么阻止我对所有PHP文件使用Unicode?
特定编码可能。 PHP本身并不专门处理文件输入,而只是作为二进制序列处理。
在源文件级别上与PHP兼容的唯一Unicode编码是UTF-8。
注意不要使用UTF-8-BOM保存php文件。 PHP将其视为标准文本并将其输出,因为它位于开始<?php
标记之前:
{UTF8-BOM}<?php
输出是不可见的,但是字节长度为3,导致标头已经发送错误或在DOM内部插入文本节点,而不是那些。