2012-06-17 50 views
2

假設我收到用MS字寫成並保存爲純文本(.txt)的西班牙文文本。不幸的是,所有的西班牙口音出現這樣的:Emacs - 如何避免或替換錯誤的字符編碼?

Un \372ltimo an\341lisis 

誰能告訴我怎樣才能避免這種情況,或至少我怎樣才能將這些字符替換?他們根本找不到replace-regexp函數,否則我可以編寫一個elisp函數,用相關的西班牙語重音字符替換它們的每一個出現。

回答

3

這看起來像ISO 8859-1(Latin-1)編碼。

改爲使用該編碼系統訪問該文件。如果Emacs沒有自動識別編碼系統,您可以使用revert-buffer-with-coding-systemC-x RET r)的顯式編碼系統重新訪問該文件。

例如,如果你正在尋找你所描述的亂碼文件,

C-x RET r 
latin-1 RET 
yes RET 

然後你可以設置你想要的編碼系統保存(C-x RET f)和指定如utf-8東西。

+0

太好了,謝謝你的作品,並且會爲我節省很多工作。唯一沒有被識別的'東西'是\ 223reglamentada \ 224,但是由於這個詞是完整的,我猜它是來自MS Word的某種格式化代碼。 – Thorsten

+0

PS Emacs如何識別像\ 372或\ 341這樣的「字符」?我怎麼能在緩衝區中執行正則表達式搜索並找到它們? – Thorsten

+0

'\ 372'是一個單個字符(八進制372),它是Latin-1中的''。由於它在UTF-8中沒有任何意義,所以emacs會顯示字節值。 – Juancho