接上篇說的符號亂碼問題,還有一種情況下的亂碼解決方法。
參考文獻
這裡匯出的是csv格式的檔案,出現亂碼,我們先要了解csv格式
csv 逗號分隔值(comma-separated values,csv,有時也稱為字元分隔值,因為分隔字元也可以不是逗號),其檔案以純文字形式儲存**資料(數字和文字)。純文字意味著該檔案是乙個字串行,不含必須像二進位制數字那樣被解讀的資料。csv檔案由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由欄位組成,欄位間的分隔符是其它字元或字串,最常見的是逗號或製表符。通常,所有記錄都有完全相同的字段序列。 csv檔案格式的通用標準並不存在,但是在rfc 4180中有基礎性的描述。使用的字元編碼同樣沒有被指定,但是7-bitascii是最基本的通用編碼。
上述引用
我們主要關注是純文字格式的,使用的字元編碼沒有被指定,所以當我們匯出csv,用excel開啟的時候,會出現亂碼的原因是
為了識別 unicode 檔案,microsoft 建議所有的 unicode 檔案應該以 zero width nobreak space字元開頭。這作為乙個」特徵符」或」位元組順序標記(byte-order mark,bom)」來識別檔案中使用的編碼和位元組順序(big-endian或little-endian),具體的對應關係見下表。
bytes encoding form
00 00 fe ff utf-32, big-endian
ff fe 00 00 utf-32, little-endian
fe ff utf-16, big-endian
ff fe utf-16, little-endian
為了使我們能夠正常開啟無編碼問題的csv檔案,我們需要為csv檔案指定bom,正常轉換識別編碼
問題來了?如何在rails裡的csv檔案操作這點?
很簡單,在生成的csv檔案頭部直接新增bom
例如:csv << ["\xef\xbb\xbf id","name","age"] ..
以上是我的總結想法,或許還有些不成熟,不妥之處,請指正,謝謝。
name: eric
email: [email protected]
如何解決python爬蟲亂碼問題
直接上 import requests url html requests.get url text print html 輸出結果亂碼,可這是為什麼呢?很明顯是編碼問題造成的 import requests import sys 輸出我們編譯器所用的編碼 print sys.getdefaulte...
如何解決mysql insert亂碼的問題
問題介紹 在mysql中插入中文亂碼,或mysql中中文正常顯示,但jsp在前台顯示mysql中的中文時亂碼。解決方法 進入mysql控制台,執行下面的命令即可 set character set client utf8 set character set connection utf8 set c...
如何解決JSP頁面顯示亂碼問題
一 jsp頁面顯示亂碼 二 表單提交中文時出現亂碼 三 資料庫連線時出現亂碼 一 jsp頁面顯示亂碼 下面的顯示頁面 display.jsp 就出現亂碼 out.print jsp的中文處理 對不同的web伺服器和不同的jdk版本,處理結果就不一樣。原因 伺服器使用的編碼方式不同和瀏覽器對不同的字元...