質問

テキストを入力し、多くの関数を使用してそれを並べ替えるプログラムがあり、テキストは形式に関係なく読みやすくする必要がありますが、拡張されたASCIIエンコードに保存されたファイルがインポートされる場合、127を超える文字は無視されます。周りを見て、私はこれを克服する方法を見ることができないようです。ファイルは、UTF-8とUnicodeで適切に読み取られます。文字列をUTF-8に変換しようとしましたが、問題の文字は、代わりにシェイプのように質問マークとして出てくるだけです。値は正しいことがわかります:ûの0xbfですが、それらは価値として解釈されていません。

誰かがここで私を助けることができますか、私は以前にこの種のことで多くの仕事をしたことがありません。それが役立つなら、私はC#で働いています。

変換するための私の現在のコードは次のように見えます:

System.Text.UTF8Encoding u = new System.Text.UTF8Encoding();
byte[] asciiBytes = Encoding.UTF8.GetBytes(sd);
sd = u.GetString(asciiBytes);

どこ sd 文字列です。この文字列をインポートするとき、テキストエンコードを指定しません。

string input = File.ReadAllText(fname);
...
parser(input);
役に立ちましたか?

解決

値が正しいことがわかります:0の0xbf

これは、ûのUTF-8エンコードではなく、2バイトシーケンス、0xc3 + 0xbbです。明らかに、ファイルが間違っていると推測しました。西ヨーロッパとアメリカで一般的なWindowsコードページ1252のそのキャラクターのエンコードは0xFBです。英国でも一般的です、あなたの居住国。数字を逆にしましたか?

代わりにencoding.defaultを使用します。

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