336

Team Foundation Server (TFS) に、英語以外の文字 (š) を含むプロジェクトがあります。いくつかのビルド関連のスクリプトを作成しようとしたときに、問題に遭遇しました -コマンドライン ツールにš文字を渡すことができません。コマンド プロンプトまたはそれ以外のものが台無しになり、tf.exeユーティリティは指定されたプロジェクトを見つけることができません。

.bat ファイルのさまざまな形式 (ANSI、BOMの有無にかかわらず UTF-8 ) を試し、JavaScript (本質的に Unicode) でスクリプトを作成しましたが、うまくいきませんでした。プログラムを実行してUnicodeコマンド ラインに渡すにはどうすればよいですか?

4

18 に答える 18

410

試す:

chcp 65001

これにより、コード ページが UTF-8 に変更されます。また、Lucida コンソール フォントを使用する必要があります。

于 2008-12-23T09:39:44.253 に答える
36

私は同じ問題を抱えていました(私はチェコ共和国出身です)。英語版の Windows をインストールしており、共有ドライブ上のファイルを操作する必要があります。ファイルへのパスには、チェコ語固有の文字が含まれています。

私のために働く解決策は次のとおりです。

バッチ ファイルで、文字セット ページを変更します。

私のバッチファイル:

chcp 1250
copy "O:\VEŘEJNÉ\ŽŽŽŽŽŽ\Ž.xls" c:\temp

バッチファイルは CP 1250 に保存する必要があります。

コンソールには文字が正しく表示されませんが、理解されることに注意してください...

于 2010-08-24T12:31:30.023 に答える
30

非 Unicode プログラムの言語を確認します。Windows コンソールでロシア語に問題がある場合は、ここでロシア語を設定する必要があります。

非 Unicode プログラムの言語の変更

于 2013-04-07T04:18:53.557 に答える
14

実際には、コマンド プロンプトはこれらの英語以外の文字を実際に理解し、正しく表示できないというトリックがあります。

英語以外の文字を含むパスをコマンド プロンプトに入力すると、「?? ?????? ?????」と表示されます。コマンド (cd "??? ?????? ?????" 私の場合) を送信すると、すべてが期待どおりに機能します。

于 2009-04-14T13:03:27.330 に答える
12

Windows 10 x64 マシンで、コマンド プロンプトに英語以外の文字を表示するようにしました。

昇格したコマンド プロンプトを開きます (管理者として CMD.EXE を実行します)。次の方法で、使用可能な 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
于 2016-08-01T09:07:06.807 に答える
6

Python 2.7 に関する完全な回答をまだ見ていないので、2 つの重要なステップと、非常に便利なオプションのステップの概要を説明します。

  1. Unicode をサポートするフォントが必要です。Windows には、コマンド プロンプトのタイトル バーを右クリックし、オプションをクリックして選択できる Lucida コンソールが付属していDefaultsます。これにより、色へのアクセスも可能になります。Properties代わりに選択することで、特定の方法 (たとえば、ここで開く、Visual Studio など) で呼び出されるコマンド ウィンドウの設定を変更することもできます。
  2. コード ページを に設定する必要がありますcp65001。これは、Microsoft がコマンド プロンプトに UTF-7 および UTF-8 サポートを提供しようとしているようです。chcp 65001これを行うには、コマンド プロンプトで実行します。一度設定すると、ウィンドウが閉じられるまでそのままです。cmd.exe を起動するたびに、これをやり直す必要があります。

より永続的な解決策については、スーパー ユーザーに関するこの回答を参照してください。つまり、REG_SZregedit at を使用して (文字列) エントリを作成しHKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor、名前を付けますAutoRun。その値を に変更しますchcp 65001。コマンドからの出力メッセージを見たくない場合は、@chcp 65001>nul代わりに使用してください。

一部のプログラムでは、このエンコーディングとのやり取りに問題があります。MinGW は、無意味なエラー メッセージでコンパイル中に失敗する注目すべきプログラムです。それにもかかわらず、これは非常にうまく機能し、ほとんどのプログラムでバグを引き起こしません。

于 2016-04-07T01:49:58.680 に答える
3

同様の問題について (私の問題は、コマンド プロンプトで MySQL の UTF-8 文字を表示することでした)、

私はこのようにそれを解決しました:

  1. コマンドプロンプトのフォントをLucida Consoleに変更しました。(このステップは、あなたの状況とは無関係である必要があります。これは、実際のキャラクターではなく、画面に表示されているものにのみ関係があります)。

  2. コードページを Windows-1253 に変更しました。これは、コマンド プロンプトで「chcp 1253」を実行して行います。UTF-8を見たいと思っていた私のケースではうまくいきました。

于 2012-12-02T12:41:56.643 に答える
2

ここにいくつかの回答が表示されますが、質問に対処していないようです-ユーザーはコマンドラインからUnicode入力を取得したいと考えています。

Windows は 2 バイト文字列のエンコードに UTF-16 を使用するため、プログラムで OS からこれらを取得する必要があります。これを行うには2つの方法があります -

1) Microsoft には、main がワイド文字配列を取ることを可能にする拡張機能があります: int wmain(int argc, wchar_t *argv[]); https://msdn.microsoft.com/en-us/library/6wd819w.aspx

2) Windows API を呼び出して、コマンド ラインの Unicode バージョンを取得します。 wchar_t win_argv = (wchar_t )CommandLineToArgvW(GetCommandLineW(), &nargs); https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-commandlinetoargvw

詳細については、http : //utf8everywhere.org を参照してください。特に、他のオペレーティング システムをサポートしている場合は注意が必要です。

于 2018-08-31T14:53:20.170 に答える
1

よりクリーンな方法: 利用可能な無料の Microsoft 日本語言語パックをインストールするだけです。(他の東洋言語パックも動作しますが、私は日本語パックをテストしました。)

これにより、グリフのより大きなセットを備えたフォントが提供され、それらがデフォルトの動作になり、cmd、ワードパッドなどのさまざまな Windows ツールが変更されます。

于 2013-05-31T12:19:42.487 に答える
1

DOS ウィンドウで入力したときにコンピューターがパス/ファイル名を正しく表示する場合は、.bat ファイルの迅速な決定:

  1. con temp.txt をコピー[Enter を押す]
  2. パス/ファイル名を入力 [Enter キーを押す]
  3. Ctrl-Z を押す[Enter を押す]

このようにして、.txt ファイル (temp.txt) を作成します。メモ帳で開き、テキストをコピーして (読めなくても心配しないでください)、.bat ファイルに貼り付けます。この方法で作成した .bat を DOS ウィンドウで実行すると、うまくいきました (キリル語、ブルガリア語)。

于 2015-04-09T08:52:08.057 に答える
1

バッチファイルで短い(8ドット3)名前でそれらを参照することにより、Unicode名のファイルを削除するという同様の問題を回避しました。

短い名前は、実行することで表示できますdir /x。明らかに、これは既知の Unicode ファイル名でのみ機能します。

于 2015-12-02T13:39:36.693 に答える