代码之家  ›  专栏  ›  技术社区  ›  Jimmy

PHP中的utf-8 bom对mooolts xmlhttprequest的响应

  •  0
  • Jimmy  · 技术社区  · 15 年前

    我正在编写我的第一个支持Ajax的Joomla组件。我在使用moootools。我得到了一个xmlhttpRequest来联系我的joomla组件,该组件返回一个响应——只是由php响应的纯文本,比如

    echo 'Hello World!';
    

    除了wireshark告诉我,当客户端的javascript读取响应时,它是以\357 \273 \277 \357 \273 \277预先准备好的。这在脚本显示的警报框中的响应之前显示为一个小正方形。

    我没有在xmlhttpRequest上显式设置编码;mootools文档说它默认为utf8。

    处理这个问题的正确方法是什么?我应该根据请求设置编码吗?MIME类型?JavaScript应该摆脱它吗?我不打算在响应中使用任何需要utf8的字符,所以使用普通的旧ASCII也可以。

    谢谢

    2 回复  |  直到 15 年前
        1
  •  0
  •   Community Mohan Dere    9 年前

    通常不建议使用UTF-8 BOM。在UTF-8中,字节顺序不能颠倒,因此除了通知消费源以下内容实际上是UTF-8编码之外,它几乎没有任何用途。

    我可以在joomla端剥离它(首选)或者使用javascript。

    另外,无论出于什么原因,看起来你有一个双BOM。

    This related question 可能也会有帮助。

        2
  •  0
  •   Jimmy    15 年前

    我使用的是MicrosoftExpressionWeb3,尽管它被设置为不为PHP文件添加BOM,但在PHP文件的开头确实有一个BOM。我使用十六进制编辑器删除了BOM,现在表达式在保存时不再添加BOM。

    我不知道XMLHttpRequest响应中为什么有2个bom,但现在它们都不见了。