我猜,大多数人都知道我们有以下文件编码:
UTF-8 是通过在文件开头添加三个字符来识别的,但正如您所知,这些字符会在 PHP 语言中引起一些麻烦
所以我们使用
这是我的问题:
我们如何使用 frwite() 或任何其他函数(无关紧要)编写编码为(UTF-8 Without BOM)的新文件(使用 PHP)
(我不是在询问编辑器设置>我是在询问如何使用 php 函数创建文件)
恐怕您在问题中误解了 UTF-8 和 ANSI。
UTF-8 是not开始时需要有 BOM。不存在“UTF-8 without BOM”编码这样的编码。只有“UTF-8”。我已经处理了数百万个(当然是数十万个)UTF-8 文件,但从一开始就从未遇到过 BOM。
根据统一码标准 http://www.unicode.org/versions/Unicode5.0.0/ch02.pdf,物料清单是既不要求也不推荐在 UTF-8 中:
2.6 编码方案
UTF-8 既不需要也不推荐使用 BOM,但在从使用 BOM 的其他编码形式转换 UTF-8 数据或将 BOM 用作 UTF-8 签名的情况下可能会遇到这种情况。请参阅“字节顺序标记”小节第 16.8 节,特价, 了解更多信息。
Also, 不存在“ANSI”这样的编码!
最接近的事情是IANA 提供 http://www.iana.org/assignments/character-sets提供给“ANSI”的字符集名称是“ANSI_X3.4-1968”和“ANSI_X3.4-1986”,它们都是“US-ASCII”(首选 MIME 名称)的旧别名,7 位128 个代码点的编码。没有其他官方字符集名称中包含“ANSI”。
我不确定您在什么环境下操作,但它似乎导致您陷入了一些非常不标准的命名、期望和标准。
也许是……Windows™? ☹
编辑:刚刚发现这个答案 https://stackoverflow.com/questions/701882/what-is-ansi-format关于这种异名的根源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)