有這樣一段UTF-8編碼 "\xe6\x93\x8d\xe4\xbd\x9c”
在頁面裡面直接賦值輸出時正確的
$subject="\xe6\x93\x8d\xe4\xbd\x9c";
$subject=mb_convert_encoding($subject, "GB2312", "UTF-8");
echo $subject;
?>
但是把條記錄放在資料庫中,讀出轉換後 沒有改變,輸入還是“\xe6\x93\x8d\xe4\xbd\x9c”;
哪位大神遇到過類似問題,請指教,謝謝
回複討論(解決方案)
看不懂想表達什麼
你看下你資料庫的編碼是什麼 估計不是GB2312的
程式中的 "\xe6\x93\x8d\xe4\xbd\x9c"
utf-8編碼的 操作 的十六進位內碼的一種表示形式(一定是要被雙引號括起的)
否則只是 \xe6\x93\x8d\xe4\xbd\x9c 這樣的串
只有在程式裡書寫的才會被轉換,外來的都不會
對於字串 \xe6\x93\x8d\xe4\xbd\x9c 可以這樣轉換
$s = '\xe6\x93\x8d\xe4\xbd\x9c';echo hex2bin(str_replace('\x', '', $s));echo urldecode(str_replace('\x', '%', $s));
程式中的 "\xe6\x93\x8d\xe4\xbd\x9c"
utf-8編碼的 操作 的十六進位內碼的一種表示形式(一定是要被雙引號括起的)
否則只是 \xe6\x93\x8d\xe4\xbd\x9c 這樣的串
只有在程式裡書寫的才會被轉換,外來的都不會
對於字串 \xe6\x93\x8d\xe4\xbd\x9c 可以這樣轉換
$s = '\xe6\x93\x8d\xe4\xbd\x9c';echo hex2bin(str_replace('\x', '', $s));echo urldecode(str_replace('\x', '%', $s));
正如版主所說,這樣是對的,謝謝大家