適切なグリフを含むフォントがインストールされていると仮定すると、Unicode文字を表示するコマンドWindows用シェルXP?少なくとも、Unicodeを正しく表示する2つのことがあります。
これまでに試したことは次のとおりです。
運がありません。私も cmd/PowerShellのカスタムフォント をインストールしようとしました。 PowerShellとcmd.exeはUnicodeを認識しているようです。つまり、印刷できないボックスをコピーして貼り付けて、正しい文字で他のアプリに貼り付けることができます。 Cygwin(?)は?に変換されるようですキャラクターとそれはコピー/ペーストで伝わります。
何か案は?
これはPowerShell v1の大きな問題でした。バージョン2には、問題を修正する「グラフィカルシェル」が付属しています。これは、最終的にPowerShellではなく、Windowsコンソールホスト(Cmd.exeも使用)にあります。必要に応じて、PowerShell v2の現在のCTPを取得できます。
実際、PowerShell v2.0は8月上旬にWindows 7およびWindows Server 2008 R2のリリースとともに完成し、出荷されました。さらに、バックポート版(Windows Vista/2008)は、先日リリース候補マイルストーンに到達しました。 Windows XP/Windows Server 2003はすぐに続くはずです。 Linky linky 。
cmd.exeでこれを行うには、コンソールプロパティダイアログを使用してUnicode TrueTypeフォントに切り替える必要があります。
次に、これらのコマンドを使用します。
CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT
コマンド:
コンソールで適切に表示するには、フォントで文字をサポートする必要があります。
コマンド "chcp 65001"を使用してコードページをUTF-8に設定すると、ファイルの内容をシェルに正しく印刷するのに役立ちます(cmd.exeを使用)。ただし、ディレクトリリストでは機能しません(NTFSファイル名のUTF-16エンコード)。
これを試して:
powershell.exe -NoExit /c "chcp.com 65001"
Msysgitの使用者:
powershell.exe -NoExit /c "chcp.com 65001; sh --login -i"
UTF-8をサポートするウィンドウのフォントをTrueTypeフォントに変更することを忘れないでください( "Lucida Console")
真のシェルについては、PowerShell Plusを試してください。エディターだけでなく、真のコンソールでも、Unicodeフォントを選択して他の言語で作業できます。
これが、Windows 7 Pro英語版で実行されるcmd.exe
で中国語の出力を取得する方法です。また、日本語、ロシア語、ポーランド語でファイル名を試してみましたが、すべて正しく表示されるようです。少なくとも、ASCII以外の文字を含むdir xxx*
を実行しようとしたときに、入力も機能しているようです。
console2 をインストールします。これはcmd.exe
(およびその他のシェル)のフロントエンドです
インストール後、 これらの手順 に従ってください
レジストリ内のキーHKEY_CURRENT_USER\Console\Console2 command window
を削除します。
次のデータをWindowsレジストリにインポートします。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\Console2 command window]
"CodePage"=dword:000003a8
"FontSize"=dword:000a0000
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="細明體"
"HistoryNoDup"=dword:00000000
フォントを変更する必要がある場合としない場合があります。最初はフォントを@NimSum
に設定し、漢字は90度回転して出てきました。それからNimSum
(@なし)に切り替えて、正しく表示されました。好奇心からConsola
に切り替えましたが、それでも中国語の文字を見ることができます。したがって、実際にフォントを設定する必要があるかどうかはわかりません。
コンソール2 を試してください。ただし、色/パレットの構成には注意してください。これらは少しバグが多いです。動作しないことを確認しました。それらはcmd.exeのように動作します。
PowerShell V2 CTP 内部 Console2 はそうするようです。唯一の欠点は、デフォルトのコンソールエンコーディングがUTF-8ではなくUCS-2 LEであることです。
2011年11月 の時点で、MinTTYはCygwinのデフォルトのターミナルエミュレータになりました(setup.exe
)。 MinTTYはPuTTYのターミナルエミュレーターのフォークであり、そのため、適切なUnicodeサポートと他のターミナルエミュレーターとの互換性が大幅に向上しています。
管理者特権でコマンドプロンプトを開きます(cmdを管理者として実行します)。次の方法で、使用可能なTrueTypeフォントをコンソールでレジストリに照会します。
REG query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont"
次のような出力が表示されます。
0 REG_SZ Lucida Console
00 REG_SZ Consolas
936 REG_SZ *新宋体
932 REG_SZ *MS ゴシック
次に、Courier Newなどの必要な文字をサポートするTrueTypeフォントを追加する必要があります。文字列名にゼロを追加することにより、この場合、次の文字列は "000"になります。
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 000 /t REG_SZ /d "Courier New"
次に、UTF-8サポートを実装します。
REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 65001 /f
デフォルトのフォントを「Courier New」に設定します。
REG ADD HKCU\Console /v FaceName /t REG_SZ /d "Courier New" /f
フォントサイズを20に設定します。
REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 20 /f
必要に応じてクイック編集を有効にします:
REG ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f