#coding=utf-8
試してみます:
JAP=open("jap.txt","r")
CHN=open("chn.txt","r" )
UTF=open("utf.txt","w")
jap_text=JAP.readline()
chn_text=CHN.readline()
#最初に UTF にデコードします- 16. 次にUTF-8にエンコードします
jap_text_utf8=jap_text.decode("SHIFT_JIS").encode("UTF-8")
#utf-8に変換しなくてもできます
chn_text_utf8=chn_text .decode("GB2312").encode("UTF-8")
#エンコード方式は大文字でも小文字でもUTF-8は同じ
UTF.write(jap_text_utf8)
UTFです。 write(chn_text_utf8)
UTF.close()
例外 IOError,e:
print "open file error",e
これは http:// から取得したものですwww.jb51.net/article/26542 記事「Python コーディングを扱うための Python の学習」から抜粋したコード (.htm)。上記の jap_text_utf8 と chn_text_utf8 は、マシンのデフォルトのエンコード方式であること、または utf-8 エンコード方式であることを保証する必要があります。最も重要なことは、一貫性があることです。それを utf-8 に均一にエンコードした後、問題なくファイルに書き込んで読み取って再度使用することができます。読み取るときは、次の通常の方法を使用します。
コードをコピーします コードは次のとおりです:
filen = open(' tt.txt')
info = filen.read()
print info
また。誰かが次のメソッドを使用してエンコードと変換を行いました:
コードをコピー コードは次のとおりです:
import sys
リロード (sys)
sys.setdefaultencoding('utf8')
def ConvertCN(s):
return s.encode('gb18030')
def PrintFile(filename) :
f = file(filename, 'r')
for f_line in f.readlines():
print ConvertCN(f_line)
f.close()
if __name__ = = "__main__":
PrintFile('1.txt')
print ConvertCN("n****** 終了するには任意のキーを押してください! ******")
print sys .stdin .readline()
私のテストによると、このメソッドは実行可能ではありません。 2 行目が削除されると、3 行目の setdefaultencoding 関数は無効になります。2 行目が保持されると、3 行目以降のコードは実行されません (ただし、エラーは報告されません)。この方法が実現可能であればぜひ試してみてください。
さらに、記事「Python における中国語の文字化けコードの問題の詳細な分析」http://www.jb51.net/article/26543.htm では、テキストのエンコード方法に関する多くの問題について説明されており、私の目を開かせてくれました。 。テキストエンコーディングの原理: 内部エンコーディング方法を示すために適切なコメント記号がテキストの先頭に追加されることが判明したため、インタプリタは特定の対応するルールを使用して、特定のバイトステップサイズまたは柔軟なステップサイズに従って単語を翻訳します。このセクションでは、原文が取得され、ステップの長さと翻訳のルールは冒頭の説明に完全に対応しています。したがって、テキストがシングルバイト エンコードの場合は、エンコードの先頭に適切なルールを追加して、エンコードされたテキストの翻訳方法を他の人に伝えることができます。その中で、BOM_UTF_8 などのテキストの末尾の知識も非常に興味深いものであり、BOM_UTF_16 なども同様に、テキストの末尾にある記号が異なります。