Jea*_*ano 24 php byte-order-mark utf-8
使用utf8_encode时如何强制PHP添加BOM?
这是我想要做的:
$zip->addFromString($filename, utf8_encode($xml));
不幸的是(对我来说),结果将不会在开头有BOM标记.
Cha*_*les 64
你有没有尝试过自己添加一个?
在UTF-8 BOM似乎是0xEF 0xBB 0xBF,这样你就可以将其连接到您的字符串后转换为UTF-8.
$utf8_with_bom = chr(239) . chr(187) . chr(191) . $utf8_string;
但请注意.  utf8_encode想要一个ISO-8859-1字符串.如果您正在使用XML,请确保XML 尚未经过 UTF-8编码.对文档的评论表明该功能以各种有趣的方式被破坏,所以除非你知道你需要它,否则你不应该抛弃它.
请记住,PHP字符串只是愚蠢的,不知道的字节.它们没有附加字符集,因此如果字符串中的数据已经是UTF-8,则无需运行转换.
此外,链接的维基百科文章说:
虽然Unicode标准允许使用UTF-8的BOM,但它不需要或推荐它.字节顺序在UTF-8中没有意义,因此BOM仅用于将文本流或文件标识为UTF-8或者是从具有BOM的另一种格式转换的.
您可能不需要开始使用BOM tapdance.
| 归档时间: | 
 | 
| 查看次数: | 39215 次 | 
| 最近记录: |