我有一个PHP脚本,它从XML文件中读取数据,通过AJAX将其返回到页面,然后将数据放入相关的文本区域。
页面的内容类型如下:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
XML标题如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY pound "£">
]>
...
问题是,当数据到达文本框时,它前面有字符Â。
我的印象是将内容类型设置为UTF-8可以解决这个问题,但我一定是错的。任何人都可以告诉我我需要使用哪种编码类型来使其一致地呈现?
答案 0 :(得分:6)
字符编码的问题在于,如果某个程序或进程在任何步骤中都无法正确处理它,那么就可以对字符进行处理。
所以,你有
因此,理想情况下,在每一步,您都需要UTF-8编码。在这个过程中,你的角色可能会受到影响。以下是我采取的跟踪此步骤的步骤
答案 1 :(得分:3)
您需要确保您的AJAX请求也返回UTF-8。设置静态页面的Content-Type很好,但它不会影响进行Ajax调用时发生的HTTP传输的Content-Type编码。
尝试在返回Ajax结果的脚本中使用此代码(在任何其他输出之前)。这将设置HTTP响应的Content-Type:
header('Content-Type: text/html; charset=utf-8');