我有一个带有一个简单回显函数的PHP文件:
echo 'アクセスは撥ねりません。';
但是当我访问该页面时,我得到了这个:
????????????
有人能帮助我吗? 我的页面编码设置为UTF-8,我知道,因为我使用的所有浏览器都这样说。 我也在echo函数之前执行此操作:
mb_internal_encoding('UTF-8');
这是做什么的? 这对我有帮助吗? 我只需要能够回显静态日语字符串。
谢谢!
答案 0 :(得分:7)
有些地方可能会出错。
首先,如果您没有在php中使用 header()
设置输出编码header('Content-type: text/html; charset=utf-8');
或带有元标记的html:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
您需要检查php.ini设置 default_charset 。这可能是默认为 iso-8859-1
其次,您可能还需要检查保存php脚本的内容编码。如果你把它保存为ASCII或其他一些拉丁字符集,那么它就会捣乱字符。
答案 1 :(得分:1)
我明白了。 我只需要设置mbstring扩展设置来处理UTF-8中的内部字符串。 Thas扩展是我的PHP 5.3.0构建的标准。
答案 2 :(得分:0)
也许您正在打印UTF-16(扩展字符集)中包含的日文字符?
答案 3 :(得分:0)
我刚做了一个快速测试,你的例子对我有用,所以很有可能是其中之一:
我以UTF-8保存了一个文件,将代码粘贴到其中,我的服务器使用Content-Type:text / html服务该文件; charset = utf-8,它显示得很好。不需要使用mb_函数或其他任何东西。