Rの中にかなり大きなデータベース(それぞれ約120バースのレコードが10,000以上あります)があります。元の.csvファイルの変数の約半分がUTF-8で正しくエンコードされています残りはANSI(Windows-1252)でエンコードされていましたが、UTF-8としてデコードされているため、é
やó
のようなASCII以外の文字(主にラテン語)の場合は奇妙な文字になります。csvファイルでの混合エンコード
半分が間違ったタイプでデコードされるため、ファイルのエンコーディングを変更することはできません。さらに、どの列が正しくエンコードされ、どの列がエンコードされていないかを知る方法がなく、私が修正しようとしているオリジナルの.csvファイルがあります。
これまでのところ、プレーンテキストファイルはUTF-8でエンコードでき、誤った解釈の文字(悪いUnicode)が推測できることが分かりました。このような機能を提供するライブラリの1つは、Pythonの場合はftfyです。
import ftfy
file = open("file.csv", "r", encoding = "UTF8")
content = file.read()
content = ftfy.fix_text(content)
しかし、content
が以前よりも正確に同じテキストを表示します。しかし、私は次のコードとこれまでのところ、持っていなかったの成功を使用しています。私はこれが、ftfyがコンテンツのエンコーディングを推論する方法と関係があると考えています。私は多分問題を解決する方法をのことを考えている
>> 'Pública que cotiza en México'
の値(セル)のそれぞれを反復処理することです:私はftfy.fix_text("Pública que cotiza en México")
を実行する場合
にもかかわらず、それは正しい応答が表示されます。 csvファイルを修正してftfyで修正しようとすると、ファイルをRにインポートすると少し複雑になりますが、少し複雑に見えますが
何か提案がありますか?
ファイルが混在していて、UTF-8を使用している場合は、UnicodeDecodeエラーが発生します。文字がDBに間違って格納されているように聞こえます。提案されているようにftfyを使用してください。おそらく結果を返す前にftfyを解析するためにCSVモジュールのラッパーを書いてください。 –