我有一个程序,我有非ASCII字符,在ISO-8859-1上没有正确显示。有没有办法使用PHP并以某种方式更改浏览器编码,并允许字符在浏览器中正确显示,即使编码是ISO-8859-1?
非常赞赏。
答案 0 :(得分:3)
使用header功能发送(显式)HTTP Content-Type response header。
header('Content-Type: text/html; charset=ISO-8859-1');
...用您实际使用的任何编码替换ISO-8859-1。希望这将是UTF-8。
答案 1 :(得分:2)
您应该使用header
功能
header( 'Content-Type: text/html; charset=ISO-8859-1');
注意:您应确保没有内容已发送到浏览器,或者您不能再修改标题,因此我建议您尽快在脚本中使用此代码
答案 2 :(得分:2)
浏览器本身没有编码。它支持许多编码并使用你告诉它的那个。如果您指定(在标题和/或HTML中)编码是ISO-8859-1,那么您的文档应该采用该编码,并且应确保您发送的所有字符都采用正确的编码。所以你应该发送ISO-8859-1字符。您不能发送对文档的不同部分使用不同编码的文档。
对于某些字符,您可以发布HTML实体。例如,é
可以é
发送。无论编码如何,这都可以。
如果您有选择,我会选择使用UTF-8。它支持任何字符,您不必担心转义变音符号或其他特殊字符,除了HTML / XML本身特有的字符。
答案 3 :(得分:1)
正如其他人所说,使用header功能:
header('Content-type: text/html; charset=ISO-8859-1');
或者,如果您要提供有效的XHTML
个文件而不是标准HTML
:
header('Content-type: application/xml+xhtml; charset=ISO-8859-1');
可以稍后在脚本中调用标题,与RageZ所说的不同,但您需要使用ob_start()
为此启用output buffering。