7

リモート サーバーから .txt ファイルをインポートし、データベースに保存しています。この目的のために .Net スクリプトを使用します。Ullerهkersvنgenファイル内の文字化けした単語/文字 ( ) に気付くことがあり、データベースへの保存中に問題が発生します。

そのようなすべての文字をフィルタリングし、データベースに保存する前にユニコードに変換したいと考えています。

注:私は多くの同様の投稿を経験しましたが、運がありませんでした.

この文脈でのあなたの助けは高く評価されます。

ありがとう。

4

2 に答える 2

4

データを適切に変換できるようにするには、データの文字エンコードを知るか、少なくとも推測する必要があります。そのため、テキスト ファイルの作成元と形式に関する情報を見つけて、ソフトウェアでファイルを正しく読み取るようにしてください。

たとえば、「Ullerneekersvنgen」は、スカンジナビアの文字が含まれているスカンジナビアの名前のように見えますが、間違った文字エンコーディングの仮定に従って誤って解釈されたり、誤った文字コード変換によって変更されたりします。その最初のアラビア文字「ハー」はU+064です。7 アラビア文字へー。ISO-8859-6 エンコーディングでは、E7 (16 進数) です。Windows-1256 では E5 です。スカンジナビア語のテキストは通常​​、ISO-8859-1 または windows-1252 (Unicode エンコーディングが使用されていない場合) で表されるため、E7 と E5 が意味する「ç」と「å」を確認するのが自然です。言語上の理由から、ここでは後者の可能性がはるかに高くなります。2 番目のアラビア文字は「ن」U+0646 ARABIC LETTER NOON で、windows-1256 では E4 です。ISO-8859-1 では、E4 は「ä」です。これは完全に理にかなっています。この言葉は「Ulleråkersvägen」であり、実際のスウェーデンの通りの名前です (少なくともウプサラでは)。

したがって、データはおそらく ISO-8859-1 または windows-1252 (Windows Latin 1) でエンコードされたテキストであり、windows-1256 (Windows アラビア語) として誤って解釈されます。変換は必要ありません。Windows-1252でエンコードされたデータを読み取るだけです。(もちろん、読み込んだ後、別のエンコーディングに変換できます。)

于 2013-05-23T12:02:15.413 に答える