如何避免在PHP中回显字符65279?我在这里(和其他地方)遇到了类似的问题-在ajax回调中,我得到一个看起来不错的xmlhttp.responseText(当我警告它时-它显示正确的文本)-但是当使用'if'时将其与字符串进行比较的语句-返回false。(我也是编写返回该字符串的服务器端代码的人)-在研究了字符串之后-我发现该字符串的第一个字符为“不可见字符”。未显示的字符。如果我将其复制到记事本中-然后删除了第一个字符-直到再次按Delete键,它才会删除。我为xmlhttp.responseText中的返回字符串做了一个charCodeAt(0)。然后返回65279。谷歌搜索它表明它是某种UTF-8控制字符,应该设置“大端”或“小端”编码。所以,现在我知道了问题的原因-但是...为什么要回显该字符?在源PHP中,我只是使用echo 'the string'...它显然以某种方式输出[chr(65279)]字符串...为什么?我该如何避免呢?
3 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
总结并指定解决方案:
Windows记事本将BOM表字符(3个字节:EF BB BF)添加到以utf-8编码保存的文件中。
PHP似乎并没有受到它的困扰-除非您将一个php文件包含到另一个文件中-否则事情会变得混乱,并且字符串会以字符(65279)开头显示。
您可以使用另一个文本编辑器(例如Notepad ++)来编辑文件,并使用编码
“在没有BOM的UTF-8中编码”,
这似乎可以解决问题。
另外,您可以在记事本中保存其他具有ANSI编码的php文件-这似乎也可以工作(也就是说,如果您实际上在文件中不使用任何扩展字符,我想...)
添加回答
举报
0/150
提交
取消