ANSIでエンコードされたテキストがあります。
(Notepad ++メニューの[エンコード]> [UTF-8]を使用して)UTF-8に変換しようとすると、奇妙な文字が表示されます。
UTF-8はANSIのスーパーセットであり、その後このような問題は発生しないと思いました。とにかく、これらの奇妙なキャラクターの出現を避けることができますか?
ANSIでエンコードされたテキストがあります。
(Notepad ++メニューの[エンコード]> [UTF-8]を使用して)UTF-8に変換しようとすると、奇妙な文字が表示されます。
UTF-8はANSIのスーパーセットであり、その後このような問題は発生しないと思いました。とにかく、これらの奇妙なキャラクターの出現を避けることができますか?
回答:
UTF-8は文字セットではなく、Unicodeの単なるエンコーディングです。最初の128文字はASCIIと同じですが、上位128バイトが異なります。上位ビットが設定された(または0x80以上)バイトはASCIIの拡張文字であり、UTF-8ではマルチバイトシーケンスの開始バイトを示します。上記の0x93または0x94の場合です。ただし、ファイルに奇妙なものは表示されません。これらは、スマートクォートまたはオープンフォームとクロシンクォートの異なる形式のクォートであり、MS Wordなどのリッチテキストエディターを使用するときによく見られます
質問が編集されました。間違ったツールを選択したためだと思います。encode
あなたは間違った文字が表示されている場合、メニュー項目は、エンコーディングを変更するためのものです。ディスクから読み取られた同じバイトシーケンスを別のエンコーディングとして処理するだけです。ASCIIとUTF-8は異なるため、不正なUTF-8バイトシーケンスがあり、上記の結果が表示されます。convert to UTF-8
入力バイト全体を変更するために選択する必要があります
また、ANSIとASCIIを混同しました。ANSIは、しばしばWindows-1252を指します。これは、英語のWindowsおよび一部の西ヨーロッパ言語で使用される文字セットです。ISO 8859-1は、ANSIと呼ばれることもありますが、ISO 8859-1のスーパーセットです。ISO 8859-1はUnicodeの最初の256コードポイントでもあるため、Unicodeのサブセットですが、UTF-8エンコーディングと互換性がありません。ASCIIは7ビットの文字セットであり、8ビットでエンコードされたANSIのサブセットですが、ANSIと呼ばれることもありますが、あまり正確ではありません
https://en.wikipedia.org/wiki/ANSI_character_set
一般に、文字セット間の関係は次のとおりです。
ASCII < ISO 8859-1 < Windows-1252
^
Unicode