我试图一个PHP页面上显示日语字符。不从数据库加载,存储在一个语言文件和回声ed。
我遇到一个奇怪的场景。我有正常页面设置utf - 8和我在本地测试示例页面WAMP服务器和它的工作原理。
那一刻我测试出来我们的开发和生产服务器的字符不正确显示。
这使我相信,那么在php . ini中设置的。但是我还没找到这样的信息我不确定如果这是问题。
有什么基本我失踪吗?
谢谢
我试图一个PHP页面上显示日语字符。不从数据库加载,存储在一个语言文件和回声ed。
我遇到一个奇怪的场景。我有正常页面设置utf - 8和我在本地测试示例页面WAMP服务器和它的工作原理。
那一刻我测试出来我们的开发和生产服务器的字符不正确显示。
这使我相信,那么在php . ini中设置的。但是我还没找到这样的信息我不确定如果这是问题。
有什么基本我失踪吗?
谢谢
既然你已经表示,它在您的开发环境中工作,而不是在你的生活,你可能想检查Apache s < a href = " http://httpd.apache.org/docs/2.0/mod/core.html # AddDefaultCharset”rel = " noreferrer " > AddDefaultCharset < / >并设置utf - 8,如果它没有。
我倾向于确保以下步骤检查
这似乎为我工作。希望这个有帮助。
你必须提供的文件与适当的编码声明< a href = " http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html # sec14.17”rel = " noreferrer " > HTTP报头字段<代码>内容类型< /代码> < / >。
在PHP中你通过< a href = " http://docs.php.net/header " rel = " noreferrer " > <代码>头< / > < /代码>函数之前第一个数据被发送到客户端,所以最好的第一个语句:
<?php
header( Content-Type: text/html;charset=utf-8 );
// the rest
首先,我认为相同的客户端机是用于测试。
所以,使用Firebug或自己的工具来检查你本地服务器的HTTP响应头,并比较他们与其他服务器生成的头文件。你毫无疑问会发现不同。
通常你的服务器响应中应该包括这样的标题:
Content-Type: text/html; charset=UTF-8
如果两个系统上的头看起来差不多,抓住的身体反应和负载在十六进制编辑器和寻找编码差异。
<强>试后(为我工作,CentOS 6.8, PHP 5.6) < /强>
#1
Apache Config
/etc/httpd/conf/httpd.conf
AddDefaultCharset UTF-8
#2
PHP Config
/etc/php.ini:
default_charset = "utf-8" >> default_charset = "Shift_JIS"
<强>注意:设置error_reporting = E_ALL & ~ E_DEPRECATED & ~代码< /强>
#3
html head meta
http-equiv =“- type”内容= " text / html;charset = Shift_JIS”