Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在浏览器中强制UTF-8编码?_Php_Html_Utf 8_Character Encoding - Fatal编程技术网

Php 如何在浏览器中强制UTF-8编码?

Php 如何在浏览器中强制UTF-8编码?,php,html,utf-8,character-encoding,Php,Html,Utf 8,Character Encoding,我有一个声明编码的页面 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 但这也没用。所有源文件均采用UTF-8编码,无BOM。我尝试的唯一解决方案是通过添加AddDefaultCharset UTF-8行在.htaccess文件中设置编码,但随后服务器上的另一个页面没有正确显示。如何解决此问题?禁用默认字符集: AddDefaultCharset Off 请注意,当页面通过HTTP提供服务

我有一个声明编码的页面

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

但这也没用。所有源文件均采用UTF-8编码,无BOM。我尝试的唯一解决方案是通过添加
AddDefaultCharset UTF-8
行在
.htaccess
文件中设置编码,但随后服务器上的另一个页面没有正确显示。如何解决此问题?

禁用默认字符集:

AddDefaultCharset Off

请注意,当页面通过HTTP提供服务时,meta content type标记将被忽略。只有当您让浏览器将页面保存到磁盘,然后通过
文件://
从磁盘打开页面时,才会使用此选项。当通过HTTP服务页面时,使用HTTP响应
内容类型
标题的
charset
属性中指定的字符集。也许您在PHP中设置头太晚了(必须在向响应写入任何位之前设置头,但是如果您设置了正确的PHP错误报告级别,您会收到此错误的通知)。您如何能够识别编码的不同?字符是否显示不正确?这是SQL DB获取的文本,在这种情况下mysql\u set\u charset可以帮助…@Ergo:通过在
.htaccess
中设置
AddDefaultCharset UTF-8
是无法解决的。啊,我不知道-谢谢+1@BalusC:
用于确定页面的字符编码,即使该页面是通过HTTP提供的。但是,内容类型标题优先于
标记(如果存在)。看,我估计,这将导致服务器上必须用ISO编码的其他页面无法正确显示。(类似于
AddDefaultCharset UTF-8
)如果apache不在头中发送字符集,浏览器将猜测编码。他们很可能会猜到iso-8859-2。你是对的,这很有帮助。我希望它是有效的,并且符合标准。不要担心它是无效的。它是apache的默认值。不知怎的,您的服务器配置不同。你现在好了。
AddDefaultCharset Off