【发布时间】:2026-01-16 14:35:01
【问题描述】:
我有一个值(名称)存储在 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 的问题,但经过相当多的谷歌搜索后无法弄清楚,所以也许我没有搜索正确的查询?
【问题讨论】:
-
当你在 var_dumping 时,你是在 var_dumping 静态
Müller还是 db 值$row['column']?听起来您的数据库不是 UTF8。 -
@chris85 我都试过了。
-
string(1) "1/4" 真的吗?你确定你没有修改你的复制和粘贴吗?或者你真的在那里得到 3 个字符?
-
@Phil_1984_ 是的,抱歉,修改了,1/4 是一个字符(所以总共两个,包括上面带有波浪号的 A)。