首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中使用BOM将字符串编码为UTF-8

在PHP中使用BOM将字符串编码为UTF-8
EN

Stack Overflow用户
提问于 2011-04-09 07:54:54
回答 1查看 48.3K关注 0票数 25

在使用utf8_encode时,如何强制PHP添加物料清单?

这是我想要做的:

代码语言:javascript
复制
$zip->addFromString($filename, utf8_encode($xml));

不幸的是(对我来说),结果在开始时不会有BOM标记。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-09 08:26:52

你试过自己添加一个吗?

UTF-8 BOM似乎是0xEF 0xBB 0xBF,所以您可以在转换为UTF-8后将其附加到字符串。

代码语言:javascript
复制
$utf8_with_bom = chr(239) . chr(187) . chr(191) . $utf8_string;

不过,要当心。utf8_encode需要ISO-8859-1字符串。如果您正在使用XML,请确保XML尚未采用UTF-8编码。文档上的注释表明,该函数以各种有趣的方式被破坏,因此除非您知道自己需要它,否则不应该随意使用它。

记住,PHP字符串仅仅是无用的、未知的字节。它们没有附加字符集,因此如果字符串中的数据已经是UTF-8,则不需要运行转换。

此外,维基百科的链接文章说:

虽然Unicode标准允许使用

-8格式的物料清单,但并不要求也不推荐这样做。字节顺序在UTF-8BOM中没有意义,因此只用于标识文本流或文件为UTF-8,或者它是从具有BOM的另一种格式转换而来的。

一开始,您可能不需要费心使用BOM抽头舞。

票数 75
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5601904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档