質問: åäöを機能させるためのエンコーディング vb.netで小さなアプリケーションを書いています。これを使用すると、コントロールパネルを経由する代わりに、パスワードを使用してユーザー「windows 7アカウント」を簡単に作成できます。私が抱えている問題は、utf-8エンコーディングを使用してvb.netでbatファイルを作成するときに、想定どおりにåäöが書き込まれないことです。私は見つけることができるすべてのエンコーディングを試しましたが、機能させることができません。なぜ私がこれを取得しているのかについて誰かが考えを持っている場合は、私に知らせてください。よろしくお願いします!
回答: 編集:私は間違っていました;) cmd.exeはutf-8を受け入れますが、必ず保存する必要がありますなしファイルの先頭にあるbom。これは2番目のテストです。バッチファイルの先頭にchcp 65001を使用できます。バッチファイルできません utf-8タイプである必要があります。 asciiである必要があります。 cmd.exeは、別の形式を受け入れません。私は簡単なテストを行い、あなたはあなたのキャラクターを使うことができますが、それはいくつかの作業を必要とします。test.batを使用してecho å ä öでファイルを作成します。形式ansi/asciiで保存します。 cmd.exeを開き、cmd.exeがlucida consoleを使用していることを確認します(unicode文字を表示するため)。ファイルを入力すると、古いdos文字として文字が表示されます。あなたは翻訳チャートを見ることができます ここ 。chcp 1252を使用して「windows ansi」- コードページ (つまり西ヨーロッパのラテン語)に切り替えると、文字が正しく表示されます。それらがそれぞれのユーティリティに転送されるかどうかは、そのユーティリティに依存します。しかし、なぜこのためのバッチファイルを作成しているのですか? vb.netでコーディングすることはできませんか?2#を編集:これは、lucida consoleでcmd.exeを設定する方法です。bomは、utf-8ファイルの先頭の3文字です。 (\xef\xbb\xbf)。 vb.netでは、次のようにファイルを作成しますwithout a bom:dim utf8withoutbom as new system.text.utf8encoding(false) '^^^^^' using sink as new streamwriter("foobar.txt", false, utf8withoutbom) sink.writeline("...") end using