2

StreamWriter でキャッシュ ファイル (.txt) に文字列を書き込もうとしています。動作していますが、キャッシュ ファイル内の文字列は、コピーしたい文字列とは異なるようです。入力文字列に特殊文字「ƒ」が含まれており、キャッシュ ファイルに書き込まれた出力文字列に従来の「f」が含まれています。エンコーディングを指定しました:

var writer = new StreamWriter(stream, Encoding.GetEncoding("ISO-8859-1"))

別のエンコーディングを指定する必要がありますか?

4

4 に答える 4

4

その文字 ( LATIN SMALL LETTER F WITH HOOK ) はiso-8859-1には表示されないため、別のエンコーディングが必要になります。おそらくutf-8です。

于 2013-04-22T14:14:50.550 に答える
2

単純に UTF-8 エンコーディングを使用してください。あなたの文字はそれによってサポートされており、他のほとんどの文字が ASCII 範囲内にある場合、UTF-8 エンコーディングは 1 バイトしか使用しないため、ファイルは ISO-8859-1 エンコーディングでエンコードされた場合よりも大きくなりません。 ASCII範囲の文字をエンコードします(それが懸念される場合)。ウィキペディアからの詳細情報は次のとおりです。

于 2013-04-22T14:20:27.227 に答える
1

ISO-8859-1 エンコーディングにはその文字がありません。

常に使用する必要がありますEncoding.UTF8

于 2013-04-22T14:14:55.650 に答える
0

UTF8 を使用する必要があります。目的の文字は ISO-8859-1 では使用できません。

于 2013-04-22T14:15:35.937 に答える