2017-10-21 11 views
1

テキストファイルはPythonを使用して文字 u2014、 u2017などでテキストファイルを修正するにはどうすればよいですか?

のような内容を持っている "長さ:クライアントごととしての\ u2019sが必要|の\ u2022材質:| \のu2022 CFC" 私は文字にこれを変換しようとしている

。読んで、これを文字に変換して元に戻す方法。一般的に

screenshot

+0

これらの '\ uXXXX'コードは、Unicode文字のPythonエスケープリテラルです。この "テキストファイル"はどこから来たのですか? Pythonの 'unicode'オブジェクトの' repr() 'を実際に正しくエンコードすることなくダンプすることによって書かれたようです。 – Iguananaut

+2

これはJSONやその他のソースから供給されましたか?これは重要です。異なるソースは、Unicodeコードポイントを異なる方法でエンコードします。 JSON '\ uhhhh'コードポイントは実際にはUTF-16値です。つまり、BMP以外のポイントには** 2つのエスケープシーケンスが必要です。 –

答えて

1

、一般的なアプローチだが、具体的には、このようなこのテキストはマルタインpointed outとして、どこから来たのかなどの詳細に依存

uni_chr_re = re.compile(r'\\u([a-fA-F0-9]{4})') 

lines = [] 
with open(filename) as f: 
    for line in f: 
     lines.append(uni_chr_re.sub(lambda m: unichr(int(m.group(1), 16)), line)) 

の線に沿って何か。

関連する問題