gpt4 book ai didi

php - 如何避免在php中回显字符65279?

转载 作者:IT王子 更新时间:2023-10-29 01:05:01 27 4
gpt4 key购买 nike

我遇到了类似的问题 here (以及在其他地方)-在 ajax 回调中,我得到一个看起来不错的 xmlhttp.responseText(当我提醒它时 - 它显示正确的文本) - 但是当使用“if”语句将其与字符串进行比较时 - 它返回 false。

(我也是编写返回该字符串的服务器端代码的人)——经过大量研究该字符串——我发现该字符串有一个“不可见字符”作为其第一个字符。未显示的字符。如果我将它复制到记事本 - 然后删除第一个字符 - 直到再次按 Delete 才会删除。

我为 xmlhttp.responseText 中返回的字符串做了一个 charCodeAt(0)。它返回 65279

谷歌搜索显示它是某种 UTF-8 控制字符,应该设置“big-endian”或“small-endian”编码。

所以,现在我知道了问题的原因——但是……为什么要回显该字符?在源 php 中,我只是使用

echo 'the string'...

它显然以某种方式输出 [chr(65279)] 字符串...

为什么?我该如何避免呢?

最佳答案

总结并指定解决方案:

Windows 记事本将 BOM 字符(3 个字节:EF BB BF)添加到以 utf-8 编码保存的文件中。

PHP 似乎并没有被它困扰 - 除非你将一个 php 文件包含到另一个 -然后事情变得一团糟,字符串显示时前面加上字符 (65279)。

您可以使用其他文本编辑器(如 Notepad++)编辑该文件,并使用编码
“在没有 BOM 的情况下以 UTF-8 编码”,
这似乎解决了问题。

此外,您可以在记事本中使用 ANSI 编码保存其他 php 文件 - 这似乎也有效(也就是说,如果您实际上没有在文件中使用任何扩展字符,我猜...)

关于php - 如何避免在php中回显字符65279?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538203/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com