我的數據庫表是UTF-8,但是當通過PHP查詢時,字符會出現不同。mysql_query返回外來字符的錯誤字符編碼
當查看數據庫中的數據看起來是這樣的:
汕头å›åŽå¤§é…’店
但是在PHP它出來作爲
汕头åÂÂââ
我注意到,當我在插入之前BASE64_ENCODE編碼數據進入mysql,然後解碼出來,然後在PHP和瀏覽器中正確顯示,並顯示在數據庫中:
汕头å›åŽå¤§é…’店
但是有數據我無法先編碼它,所以我不能總是這樣做,所以我想知道爲什麼mysql_query使它出現不同。我試過很多東西
查詢之前做:
的mysql_query( 「設置character_set_results = 'utf-8'」);
和
mysql_query("SET NAMES UTF8");
查詢之前這樣做:
mb_internal_encoding( 'UTF-8'); mb_http_output('UTF-8'); mb_http_input('UTF-8');
這是我的html頁面頁眉
「元HTTP的當量=」 Content-Type的 「內容=」 text/html的;字符集= UTF-8" /」使用有問題的領域utf8_decode
,但似乎使情況變得更糟
但它並沒有不同的輸出,我可以同時看到正確的(在BASE64_DECODE )和不正確的字符在同一頁
謝謝!
有無你還試圖說明你的HTML中的字符集是utf-8? –
是的,我在那裏,它不會有所不同,我可以看到問題一和在同一頁上工作的問題 – user2760338
嘗試在頁面頂部的php代碼中添加這個'header(「Content - 類型:application/html; charset = utf-8「);' – John