PHP: 特殊字符未正确显示
PHP: Special chars not shown correctly
我有一个值(名称)存储在pg数据库中,值为Müller
。但是,例如当我 var_dump('Müller');
我得到输出: MÃ1/4ller
.
我试过设置 header('Content-Type: text/html; charset=UTF-8');
但不行。
有趣的是,我在客户端没有遇到这个问题,名字显示正确,但在服务器端,当分解名字的前三个字母而不是得到:
array(3) {
[0] =>
string(1) "M"
[1] =>
string(1) "ü"
[2] =>
string(1) "l"
}
我得到:
array(3) {
[0] =>
string(1) "M"
[1] =>
string(1) "Ã"
[2] =>
string(1) "1/4"
}
我想既然数据库正确地存储了值,那一定是 php 的事情,但是在谷歌搜索了很多之后还没有弄清楚,所以也许我不是寻找正确的查询?
这取决于您的架构配置。
在使用 PHP 转储之前尝试 utf8_decode()
。
http://php.net/manual/fr/function.utf8-decode.php
或者您可以使用 utf8_encode()
,将字符串编码回 utf8
我有一个值(名称)存储在pg数据库中,值为Müller
。但是,例如当我 var_dump('Müller');
我得到输出: MÃ1/4ller
.
我试过设置 header('Content-Type: text/html; charset=UTF-8');
但不行。
有趣的是,我在客户端没有遇到这个问题,名字显示正确,但在服务器端,当分解名字的前三个字母而不是得到:
array(3) {
[0] =>
string(1) "M"
[1] =>
string(1) "ü"
[2] =>
string(1) "l"
}
我得到:
array(3) {
[0] =>
string(1) "M"
[1] =>
string(1) "Ã"
[2] =>
string(1) "1/4"
}
我想既然数据库正确地存储了值,那一定是 php 的事情,但是在谷歌搜索了很多之后还没有弄清楚,所以也许我不是寻找正确的查询?
这取决于您的架构配置。
在使用 PHP 转储之前尝试 utf8_decode()
。
http://php.net/manual/fr/function.utf8-decode.php
或者您可以使用 utf8_encode()
,将字符串编码回 utf8