2012-10-31 23 views
0

所以基本上我還是很新的Python,我有一個問題,我有一個日文文檔,我試圖轉換爲utf-8編碼文檔。當我這樣做時,我不知道我應該得到什麼回報。當我運行我目前擁有的程序時,它只會刪除所有內容,並留下空白的utf-8編碼文檔。這是我的,任何幫助,非常感謝。如何使用編解碼器從一種語言轉換爲utf-8編碼文檔?

編輯:對不起,這是一個錯字,我修正了原始編碼。這是Shift-jis。

import codecs 

codecs.open("rshmn10j.txt", 'r', encoding='shift-jis') 

newfile = codecs.open("rshmn10j.txt", 'w', encoding='utf-8') 
newfile.write(u'\ufeff') 
newfile.close() 
+0

convert = read + write –

+0

好吧,打開('w')會打開它打開的文件。另外,還不清楚你想要做什麼 - 如果文檔已經在utf-8中(正如你的第一個打開('r')似乎表明的那樣),那麼爲什麼你需要轉換它?最後,您可以使用'utf-8-sig'來獲得自動BOM支持,而不必手動完成。 – Cameron

+0

你知道日文文件編碼的編解碼器嗎? –

回答

2

,如果你想從一個文檔編碼「X」編碼「UTF8」轉換,你首先必須使用它在編碼中的編碼讀取文件。

import codecs 

original_document_encoding = "shift-jis" # common japanese encoding. 
with codecs.open("rshmn10j.txt", 'r', encoding=original_document_encoding) as in_f: 
    unicode_content = in_f.read() 

with codecs.open("rshmn10j.out.txt", 'w', encoding='utf-8') as out_f: 
    out_f.write(unicode_content) 

with在這裏用於在塊退出時自動關閉文件。

+0

感謝您的回覆。我正在用你的方法嘗試它,但是每當我運行程序時,我都會得到與原始文檔相同的東西。你認爲這是因爲shift-jis是錯誤的編解碼器還是其他東西?當我打開原始文檔時,確實推薦使用shift-jis編解碼器。 – Neemaximo

+0

我不確定你在期待什麼。當您更改編碼視覺時,打開文件時不應改變,只有使用的編碼。 – monkut

+0

我很困惑,我應該得到什麼,但我現在看到它是utf-8,感謝您的幫助 – Neemaximo