質問

ANSIがサポートしていないアクセント付き文字があったため、ANSIエンコードされたテキストファイルがANSIとしてエンコードされるべきではなかったはずです。私はむしろ UTF-8 で作業したいと思っています。

データは正しくデコードできますか、それともトランスコーディングで失われますか?

どのようなツールを使用できますか?

これが私が持っているもののサンプルです:

ç é

文脈から (café はカフェである必要があります)、これらは次の 2 つの文字であることが分かります。

ç é
役に立ちましたか?

解決

編集:より複雑な解決策に入る前に、簡単に排除できる可能性があります。ファイルを読んでいるテキストエディタで文字セットをutf8に設定してみましたか?これは、誰かが utf8 ファイルを送信し、それを cp1252 に設定されたエディターで読んでいる場合に発生する可能性があります。

2 つの例を挙げると、これは utf8 がシングルバイト エンコーディング (iso-8859-1、iso-8859-15、または cp1252 のいずれか) のレンズを通して読み取られるケースです。他の問題の文字の例を投稿していただければ、さらに絞り込むことができるはずです。

文字を視覚的に検査すると誤解を招く可能性があるため、基になるバイトも調べる必要があります。画面に表示される § は 0xa7 または 0xc2a7 のいずれかであり、それによって実行する必要がある文字セット変換の種類が決まります。

すべてのデータがまったく同じ方法で歪められている、つまり、同じソースから取得され、同じ一連の変換を経て、たとえばテキストに é が 1 つも存在せず、常に同じであると仮定できますか? ×?その場合、一連の文字セット変換によって問題を解決できます。現在の環境と使用しているデータベースについてより具体的に説明できれば、適切な変換を実行する方法をここの誰かが教えてくれるでしょう。

それ以外の場合、問題の文字がデータ内の特定の場所でのみ発生している場合は、「作成者はテキストに ç を入れるつもりはなかったので、表示されるたびに」というような仮定に基づいて、インスタンスごとに対処する必要があります。それを「ç」に置き換えます。後者の選択肢は、より危険です。第一に、作者の意図についての仮定が間違っている可能性があるからです。第二に、問題のある文字をすべて自分で見つけなければならないためです。視覚的に検査するにはテキストが多すぎる場合、または書かれている場合は不可能である可能性があります。あなたにとって馴染みのない言語や書記体系で。

他のヒント

Notepad++ を使用して次の手順に従います。

1- 元のテキストをコピーします

2- Notepad++ で、新しいファイルを開き、エンコーディングを変更します -> 元のテキストが従うと思われるエンコーディングを選択します。特定のプログラムでは Unicode ファイルが ANSI として読み取られる場合があるため、エンコード「ANSI」も試してください。

3- 貼り付け

4- 次に、同じメニューを再度実行して Unicode に変換します。エンコーディング -> 「UTF-8 でエンコード」 (「UTF-8 に変換」ではありません) で読み取れるようになるといいですね

上記の手順はほとんどの言語に適用されます。notepad++ に貼り付ける前に元のエンコーディングを推測し、同じメニューを通じて別の Unicode ベースのエンコーディングに変換して、読み取れるかどうかを確認するだけです。

ほとんどの言語には、次の 2 つの形式のエンコーディングが存在します。1- わずか 8 ビットの古いレガシー ANSI (ASCII) 形式が、最初はほとんどのコンピュータで使用されていました。8 ビットでは 256 の可能性のみが許可され、そのうち 128 は通常のラテン文字と制御文字で、最後の 128 ビットは PC の言語設定に応じて異なる方法で読み取られました。 2- 新しい Unicode 標準 (最大 32 ビット) により、各文字に一意のコードが与えられます。現在知られているすべての言語に対応しており、今後さらに多くの言語に対応します。ファイルが Unicode の場合、その言語のフォントがインストールされているどの PC でも理解できるはずです。UTF-8 でさえ 32 ビットまで拡張され、UTF-16 や UTF-32 と同じくらい広範ですが、ディスク領域を節約するためだけにラテン文字では 8 ビットのままにしようとすることに注意してください。

ç や é などの文字シーケンスが表示される場合、通常、UTF-8 ファイルが ANSI (または類似の) 形式で読み込まれるプログラムによって開かれていることを示します。次のような Unicode 文字:

U+00C2 ラテン大文字 A サーカムフレックス付き
U+00C3 ラテン大文字 A チルダ付き
U+0082 ここで休憩許可
U+0083 ここで休憩はありません

UTF-8 が使用する可変バイト戦略のため、ANSI テキストに表示される傾向があります。この戦略は非常によく説明されています ここ.

あなたにとっての利点は、これらの奇妙な文字の出現により、誤った変換の例を比較的簡単に見つけて置き換えることができることです。

ANSI では常に 1 文字あたり 1 バイトを使用するため、この状況は単純な検索と置換操作で処理できると思います。または、より便利には、次のような、問題のあるシーケンスと目的の文字の間のテーブル マッピングを含むプログラムを使用します。

–> “ # は開始二重中引用符である必要があります
??-> ” # は二重中引用符で囲む必要があります

どのテキストでも、それが英語であると仮定すると、比較的少数の異なるタイプの置換が存在します。

それが役立つことを願っています。

コマンドラインから vim を使用する場合:

vim -c "set encoding=utf8" -c "set fileencoding=utf8" -c "wq" filename

iconv を使用します - を参照してください。 文字セット間でテキスト ファイルを変換する最良の方法は?

Sublime テキスト エディターで、ファイル -> エンコーディングを使用して再度開く -> 正しいエンコーディングを選択します。

通常、エンコーディングは自動検出されますが、そうでない場合は、上記の方法を使用できます。

ファイル内に疑問符が含まれている場合、またはアクセント記号がすでに失われている場合は、utf8 に戻しても問題は解決しません。例えばカフェがカフェになった場合 - エンコードを変更するだけでは役に立ちません (元のデータが必要になります)。

確実に回答できるよう、ここにテキストを貼り付けていただけますか。

そして、少し古いものがあります 記録する プログラム。

次のようなファイルのエンコードを検出しようとするプログラムがあります。 シャルデ. 。次に、iconv を使用して別のエンコーディングに変換できます。ただし、そのためには、元のテキストがそのままの状態であり、情報が失われないことが必要です(たとえば、アクセント記号またはアクセント付き文字全体を削除することによって)。

ファイルのエンコーディングを自動検出する簡単な方法を見つけました。ファイルをテキスト ファイルに変更し (Mac ではファイル拡張子の名前を .txt に変更します)、それを Mozilla Firefox ウィンドウ (または [ファイル] -> [開く]) にドラッグします。Firefox はエンコーディングを検出します。[表示] -> [文字エンコーディング] で結果を確認できます。

正しいエンコーディングがわかったら、TextMate を使用してファイルのエンコーディングを変更しました。ファイル -> エンコーディングを使用して再度開き、エンコーディングを選択します。次に、[ファイル] -> [名前を付けて保存] を選択し、エンコーディングを UTF-8 に変更し、行末を LF (または任意の文字列) に変更します。

OS X の場合 シナライズしてみよう! ファイルの一部をさまざまなエンコードで表示できます (これらはすべて ICU ライブラリでサポートされています)。ソース エンコーディングがわかったら、クリップボード経由でファイル全体 (バイト) をコピーし、ターゲット エンコーディング (UTF-8 などお好みのもの) が選択されている新しいドキュメントに挿入できます。

UTF-8 またはその他の Unicode 表現を使用する場合に非常に役立ちます。 ユニコードチェッカー

漢字に関するコード ページの問題の解決策を探していたときにこの質問を見つけましたが、結局のところ、私の問題は Windows が UI で文字を正しく表示しないという問題でした。

他の人が同じ問題を抱えている場合は、Windows のローカルを中国に変更し、再度元に戻すだけで問題を解決できます。

ここで解決策を見つけました:

http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-can-i-get-chinesejapanese-characters-to/fdb1f1da-b868-40d1-a4a4-7acadff4aafa?page=2&auth= 1

また、notepad++ でデータを見ることが Windows についてのヒントになったので、ガブリエルの回答に賛成票を投じました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top