我有一个带有一个简单回显函数的 PHP 文件:
echo 'アクセスは撥ねりません。';
但是当我访问该页面时,我得到了这个:
????????????
有人能帮我吗?我也将我的页面编码设置为 UTF-8,我知道,因为我使用的所有浏览器都这么说。我也在 echo 函数之前这样做:
mb_internal_encoding('UTF-8');
这是做什么的?它对我有帮助吗?我所需要的只是能够回显一个静态的日语字符串。
谢谢!
有几个地方可能会出错。
首先,如果您没有使用header()在 php 中设置输出编码
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 或其他拉丁字符集,它将处理这些字符。
我知道了。我只需要设置 mbstring 扩展设置来处理 UTF-8 中的内部字符串。Thas 扩展是我构建的 PHP 5.3.0 的标准配置。
也许您正在打印包含在 UTF-16(扩展字符集)中的日文字符?
我刚刚做了一个快速测试,你的例子对我有用,所以它很可能是其中之一:
我以 UTF-8 保存了一个文件,将您的代码粘贴到其中,我的服务器正在使用 Content-Type: text/html; 提供该文件;charset=utf-8 它显示得很好。不需要使用 mb_ 函数或其他任何东西。