用PHP更改浏览器编码?

时间:2011-12-21 10:36:26

标签: php browser encoding

我有一个程序,我有非ASCII字符,在ISO-8859-1上没有正确显示。有没有办法使用PHP并以某种方式更改浏览器编码,并允许字符在浏览器中正确显示,即使编码是ISO-8859-1?

非常赞赏。

4 个答案:

答案 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