基本上所有的字符集問題都源於它們被混合和/或曲解的事實。
字符串(文本)是按特定順序的字節序列。字符串使用一些特定的字符集進行編碼,本身既不是正確也不是錯誤,也不是其他任何東西。問題是當你試圖讀取字符串,字節序列,假設錯誤的字符集。例如,使用KS X 1001進行編碼的字節在讀取它們時假定它們是UTF-8就沒有意義,這就是問號的來源。
您從中獲得文本的網站會將其發送給您,並以某些特定字符集爲例,假設您使用的是KS X 1001.假設您的網站使用UTF-8。在UTF-8編碼文本的中間嵌入代表KS X 1001編碼文本的字節流,並告知瀏覽器將整個站點解釋爲UTF-8,這導致KS X 1001編碼文本對UTF-8解析器沒有意義。
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
KSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKS
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
將呈現爲
Hey, this is UTF-8 encoded text, awesome!
???????I?have?no?idea?what?this?is???????
Hey, this is UTF-8 encoded text, awesome!
爲了解決這個問題,convert所獲取的文本爲UTF-8(或您在使用網站上的任何編碼)。看看其他網站的Content-Type
標題,它應該告訴你網站是什麼編碼。如果不是,請猜測。
什麼是數據庫字符集? 什麼是你的文件字符集? 你的控制檯字符集是什麼? – 2010-07-29 09:28:27
添加了PHP源代碼和SQL轉儲,請看看它們。 – lesderid 2010-07-29 09:30:47
PHP與charsets很少有關係。我主要是數據庫/ html責任 – 2010-07-29 09:32:13