我接收$ _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