字符編碼的理解

字符編碼、轉碼的東西困惑我很長時間,爲何要有這個東西。而後看了下資料以及百科,http://baike.baidu.com/link?url=Tm2pqNPIc9CtJxmMarwLLqNgq2ZLMmWyZf62TZ9Djb2qxSzXrnOG_Ie6DYOwsYJbw15cesdnf-ywVRho99k2wKmysql

大概是編碼是將字符X以某種編碼方式A轉成B存儲或者傳輸,若是要顯示B的內容,則須要告訴計算機怎樣解碼,若是以同一種方式A解碼,則顯示的內容是X,若是以另外的解碼方式解碼,則可能顯示另外的內容,或者亂碼。sql

將文本文件導入數據庫時,常常會涉及到編碼的問題,若是數據庫是以utf8的方式編碼和解碼,則若是告訴導入的csv文件是某種編碼,計算機會按照這種編碼解碼字符串,而後再將字符串以uft8的方式編碼,存儲到計算機上。若是未聲明,則默認數據是以UTF8編碼的,直接存儲在計算機上,可是在現實時UTF8沒法對存儲的數據進行解碼,因此出現亂碼,可是若是仍然以原來的編碼方式進行解碼,仍然能夠進行正常的顯示。數據庫

轉碼大概是將二進制的存儲數據,以正確方式解碼爲字符串,而後將字符串以另外的編碼方式編碼吧。編碼

這樣大概能解釋EXCEL能正確顯示ANSI存儲的CSV文件而沒法顯示UTF8存儲的文件,可是經過ADO遠程取的UTF8格式的mysql數據能正常顯示,按道理應該有問題啊,中間還有什麼過程麼?url

若是個人表述或者結論有問題,但願大神們指正啊,不要讓小的繼續犯錯誤。字符串

相關文章
相關標籤/搜索