utf-8でエンコードされたファイルからデータを読み取りました。このファイルの内容の一部は、新しく作成されたフォルダーの名前として使用されます。ただし、私のフォルダ名は次のとおりです。
bohouš_120328の代わりにbohou�_120328
新しく作成したフォルダの名前に適切なコーディングを設定するにはどうすればよいですか?ありがとう。
編集:
私はこのようにファイルから情報を読んでいます:
System.IO.StreamReader file = new System.IO.StreamReader(nameOfFile);
while ((j = file.ReadLine()) != null) {
//manipulating string in j
}
次に、でディレクトリを作成します
if (Directory.Exists(folder) == false) {
Console.WriteLine("creating directory " + folder);
System.IO.Directory.CreateDirectory(@folder);
}
Windows 7、64ビットコンピューターでアプリケーションを実行すると、すべて問題ありません。ただし、WinXPなどの古いシステムを搭載した他のコンピュータで実行すると、コーディングが間違っており、次のようになります。
bohou�_120328
変数を使用してフォルダーを作成する前に、iを出力に書き込みますが、すべて問題ありません。フォルダ名でも問題ありません。しかし、残念ながら、私のコンピューターだけです。
edit2:
物事はさらに奇妙になっています。このコードを使用しました。.NETの文字列から発音区別符号(アクセント)を削除するにはどうすればよいですか?発音区別符号のない名前は私にとっては問題ないので、発音区別符号を削除します。
ただし、ここでも:
- 私のコンピューターでコードを実行すると、bohous_120328になります
- 他のコンピューターでコードを実行すると、フラッシュディスクがbohou�_120328になります
.exeファイルをコピーしたのと同じコードであることを誓います。
デバッガーは、フォルダーを作成する前に、問題が既に私の文字列変数にあると言います。この場合、環境が私の変数にどのように影響するかはわかりません。
説明をいただければ幸いです:-)