我接收$ _GET参数作为十六进制表示形式的"6d617263f2"
字符串。PHP - 字符串编码
据我了解字符编码,这不是一个UTF-8字符串。如果我用UTF-8编码打印它,我得到的是"marc�"
。如果我使用utf8_encode
将字符串转换为UTF-8,我会得到正确的表示形式,即marcò
。
我在php.ini
文件中设置了所有字符编码(default_carset,iconv和mbstring)以使用UTF-8。我也有mbstring.encoding_translation
设置为On
。
我无法完全理解正在发生什么...为什么我没有使用UTF-8
正确编码$_GET
参数?
我的猜测是:
客户端使用其它字符编码,如果我想使用UTF-8,也就是明确地我的参数转换为UTF-8
- 没有其他办法
我在某处丢失了某些东西...
请问你能帮我解释一下吗?
您是否在控制发送该GET参数,还是从不可控的第三方接收它? – deceze
@deceze无法控制的第三方 – marcosh