【发布时间】:2016-02-26 10:50:26
【问题描述】:
我收到一个带有"6d617263f2" 十六进制表示的字符串作为$_GET 参数。
据我了解字符编码,这不是 UTF-8 字符串。如果我用 UTF-8 编码打印它,我得到的是"marc�"。如果我使用utf8_encode 将字符串转换为UTF-8,我会得到正确的表示形式,即marcò。
我在php.ini 文件中设置了我所有的字符编码(default_carset、iconv 和 mbstring)以使用 UTF-8。我还将mbstring.encoding_translation 设置为On。
我无法完全理解发生了什么...为什么我的$_GET 参数没有正确编码为UTF-8?
我的猜测是:
客户端正在使用另一种字符编码,如果我想使用 UTF-8,没有其他方法可以将我的参数显式转换为 UTF-8
我在某处遗漏了一些东西......
你能帮我解释一下吗?
【问题讨论】:
-
您是在控制发送该 GET 参数,还是从无法控制的第 3 方接收它?
-
@deceze 无法控制的第三者