私は奇妙な問題に直面しています。Windows コマンド プロンプトで、すべての「/」文字がジャンク文字 (円記号) に置き換えられています。「MSゴシック」と「ラスター」の2種類のフォントを選択しました。しかし、同じ問題。Raster を使用すると、問題は断続的に発生します。問題の解決方法を教えてください。
ありがとう、ナガ
私は奇妙な問題に直面しています。Windows コマンド プロンプトで、すべての「/」文字がジャンク文字 (円記号) に置き換えられています。「MSゴシック」と「ラスター」の2種類のフォントを選択しました。しかし、同じ問題。Raster を使用すると、問題は断続的に発生します。問題の解決方法を教えてください。
ありがとう、ナガ
コマンドプロンプトchcp
で入力すると、表示されるはずですActive code page: 932
Windows コンソールには、言語に応じてバイト 0 ~ 255 がさまざまな文字にマップされる、ユニコード以前の時代の遺物であるコード ページの概念があります。文字 a ~ z、A ~ Z、0 ~ 9 は一貫していますが、使用頻度の低い文字はターゲット言語で一般的な文字にマップされます。
コード ページ 932では、バックスラッシュが円記号にマッピングされます。
これはよくある問題です。MSDN に関する Microsoft のメモを参照してください。
注意 日本語オペレーティング システムで使用される Windows コード ページおよび OEM コード ページの文字セットには、バックスラッシュ () の代わりに円記号 (¥) が含まれています。したがって、円記号は NTFS および FAT ファイル システムでは禁止文字です。Unicode を日本語コード ページにマッピングする場合、WideCharToMultiByte およびその他の変換関数は、バックスラッシュ (U+005C) と通常の Unicode 円記号 (U+00A5) の両方をこの同じ文字にマッピングします。セキュリティ上の理由から、通常、アプリケーションでは、FAT ファイル名として使用するために変換される可能性のある Unicode 文字列に文字 U+00A5 を許可しないでください。詳細については、「セキュリティに関する考慮事項: 国際機能」を参照してください。
アップデート
遅れて申し訳ありませんが、これについて最初に読んだ場所を思い出すのに少し時間がかかりました. 最適なリファレンスは、ここにある Mike Kaplan のウェブログ エントリです。michkap は、Unicode に関するすべてのことを扱う最高の Microsoft ブログです。文字セット、エンコーディングの問題、および国際化の暗部を扱っている場合、彼のブログは不可欠なリファレンスです。
バックスラッシュとしての円文字に関する彼のエントリから:
...日本語のコード ページ 932 では 0x5c が YEN SIGN であり、韓国語のコード ページ 949 では 0x5c が WON SIGN です。
0x5c がパス区切りとして機能しないというわけではありませんが、それでも機能します。また、円とウォンの Unicode コード ポイント (U+00a5 と U+20a9) がパス セパレータとして機能するとも言いません。
...
実際には、日本と韓国で何年にもわたってそれぞれの通貨記号をパス区切り記号として使用するコード ページ ベースのシステムが使用されてきたため、顧客はこの外観に単純に慣れていると考えられています。そのため、その外観 (システム設定が日本語または韓国語の場合) をこれらの記号以外のものに変更することにほとんど関心がありませんでした。
この予想をサポートするために、デフォルトのシステム ロケールがそれぞれ日本語または韓国語に設定されている場合、日本語および韓国語のフォントは、U+005c が表示されるときに円記号ではなく通貨記号を表示します。
それよりも優れたリファレンスを見つけるのは難しいと思います。
円と \ の両方の文字のバイト値は 0x5C で、文字セットが異なります。これは非常に一般的であるため、日本人は一般的にこれを認識しており、問題とは考えていません.
このブログ投稿のコメント セクションを参照してください- Norman Diamond at 27 Dec 2004 1:45 AM は次のように書いています。日本)