web-dev-qa-db-ja.com

Windows 10 bashターミナルのUTF8文字

私はwindows 10に新しいbashシェルをインストールしました。私はZSHと一緒にそれを使っています。ただし、utf8文字は機能せず、正方形のブロックとして表示されます。シェルでデフォルトでutf8文字エンコーディングを有効にするにはどうすればいいですか?それは可能ですか?

32
Ortix92

Bashウィンドウの上部にあるタイトルバーを右クリックして、エントリのプロパティを選択します。最初のウィンドウにはフォントを変更できるタブがあります。フォントを "Source Code Pro"とサイズ14に変更しました。

よさそうだし、すべてのUTF-8文字が機能している。

10
Doctorj

Doctorjの答えに加えて、デフォルトでインストールされているいくつかのフォントがあります(Windows 10 bashシェルの場合)。

テスト言語:ブルガリア語、ウクライナ語、簡体字中国語、繁体字中国語、デンマーク語、フランス語、ドイツ語、イタリア語、日本語、カザフ語、韓国語、マケドニア語、モンゴル語、ノルウェー語、ポーランド語、ポルトガル語、ロシア語、セルビア語、スペイン語、スウェーデン語。

次のデフォルトフォントは、観察されたすべての文字を表示します。

  • MSゴシック
  • NSimSun
    • カザフのすべてを表示しているようには見えません。
  • SimSun-ExtB(ラスタフォント) - 私のおすすめ

MSゴシックとNSimSunの両方

  • ラテン語以外のCJK(中国語、日本語、韓国語)以外の言語(マケドニア語、カザフ語、ブルガリア語)を削除します。
  • アクセント付きのラテン文字(á、é)に対して奇妙な垂直方向のオフセットがあります。
  • 少なくとも1つのマケドニア文字を表示しませんでした。

SumSun-ExtB(ラスタフォント):

  • ラスタフォントがうまく表示されないかもしれないという警告メッセージがあります。
  • ほとんどの文字は暗く表示されます(画面の明るさが低いと問題になる可能性があります)。
  • ASCII文字と比較して、非ASCII文字は明るくなります(解決策として、太字のオプションを使用してください)。
  • すべての言語の文字は互いに接近しています(単語間の間隔が見やすい)。
  • ラテン系以外のCJK以外の言語の方が信頼性が高いようです。

Command PromptとPowerShellのどちらのフォントでも、ASCII以外の文字をクリックすると奇妙なことが起こりますが、テキストをハイライトすると通常の状態に戻ります。

フォントをインストールするには:bash経由のLinuxではなく、使用しているWindowsシェル(コマンドプロンプトやPowerShellなど)のフォントを変更する必要があります。このリンクでは、コマンドプロンプトで使用できるフォント(固定幅フォント、およびコマンドプロンプト用のフォントのインストールと選択方法)について説明します。 コマンドプロンプトにフォントを追加する

  • レジストリエディタを起動します( "regedit"を実行します)。
  • HKEY LOCAL MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFontフォルダを探します。
  • 右クリック(または編集) - >新規 - >ストリング値
  • 最後のフォントよりも0を大きくしてフォントに名前を付けます( "000"など)。
  • エントリを右クリックして[修正]を選択します。
  • フォントまたはOTFファイルの名前を入力します(.otfなし)。

Windowsでコマンドラインからフォントをインストールする方法については、 をご覧ください。

  • 「Source Code Pro」をインストールしようとしましたが、フォントに表示されませんでした。
  • DejaVu Sans Monoをインストールしましたが、ほとんどの言語で動作しますが、CJKではまったく動作しません。
  • 私はGoogleのNoto monospaceフォントをインストールしました、そしてそれは動作しましたが、CJKのためには動作しませんでした。また、彼らは具体的に彼らがCJKのための固定幅のサポートを持っていないと言います。
  • GoogleのInconsolataをインストールしましたが、試してみる価値はありませんでした。
  • GNU FreeFont(FreeMono)をインストールしましたが、うまくいきましたが、CJKにはできませんでした。
  • 私はあきらめてSimSun-ExtBに戻りました。

(注:リンクを投稿するにはまだ十分な評判がありません)。

9
Joshua Mathias

あなたはDejaVu Sans Monoを試すことができます - それは私のために働きます。

5
user3599934

これは本当に答えよりもコメントの詳細ですが、SEは私がコメントすることを許可していないので...

あなたは十分な情報を提供していません。 Unicodeは100万以上の可能な文字を提供し、そのうち10万以上が定義されています。 (残りの1つは地球外の人に連絡をとるときのためのもので、まだエンコードされていないEarthlingsの書記体系のためのものです。)それらすべての文字にグリフ(文字の絵)を提供する。 (内部にコードポイントを持つボックスを提供するものが1つか2つありますが、それはあなたが望むものではありません。)

2年以上前にGrawityが言ったように、あなたが1文字を期待するボックスを手に入れた場合、あなたのアプリケーションはすでにUnicode(おそらくUnicodeのUTF-8エンコーディング)を表示しています。あなたが欠けているのはあなたが表示したいどんなスクリプトにもグリフを供給するフォントです。ロシア語を表示している場合は、キリル文字のフォントが必要です。中国語を表示したい場合は、それらの文字を含むフォントが必要です。 (そのようなフォントのほとんどはラテン文字(私たちが英語で使う種類)も表示しますが、必ずしもきれいではありません。)

だから私のあなたへの質問は:あなたが表示しようとしているスクリプトは何ですか?それがわかるまでは、すべての答えは推測になります。

ところで、かなり複雑なスクリプトがいくつかあります。たとえ正しいフォントがあっても、正しく表示されるプログラムはいくつかあります。これらの中には、ビルマ語、一部のインド文字(Devanagariなど)、およびアラビア語(右から左に書かれており、隣接する文字によって表示が異なる文字があります)があります。

0
Mike Maxwell