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


36

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


5
各文字が1つの正方形ブロックとして表示される場合、UTF-8はすでに機能しています。Unicodeがサポートされていないフォントです。
悲しみ

使用chcp 65001UTF-8に変更しコードページへとConsolasにフォントを変更
phuclv

SimSun-Ext Bフォントに切り替えましたが、すべての文字が正しく表示されています。
ライアンフォーリー

5
@grawity私はuubntuモノを使っていましたが、今ではコンソラに切り替えました。空の四角いボックスの代わりに、疑問符が入った四角いボックスを取得します。chcpの提案も試しましたが、プロパティを確認したときにすでにUTF-8エンコーディングに設定されています。
Ortix92

2
私は、この問題はまだ解決されていないことを、私はまだZSHを使用して適切にユニコードUTF8の文字を表示することができないことを指摘したいと思います
Ortix92

回答:


12

bashウィンドウの上部にあるタイトルバーを右クリックして、エントリのプロパティを選択します。開始ウィンドウには、フォントを変更できるタブがあります。フォントを「ソースコードプロ」とサイズ14に変更しました。

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


それが本当の答えです。UTF8をサポートする任意のフォントを選択できます。Menloをインストールした後、bashオプションで変更するのを忘れましたが、正直なところ、それについても考えていませんでした。
StalkAlex

Windows(Source Code Proを含む)ですべてのデフォルトオプションを試してみましたが、チェックマーク文字(✔)は@ user3599934によって提案された「DejaVu Sans Mono」フォントでのみ機能しました。
セブロン

10

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

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

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

  • MSゴシック
  • NSimSun
    • カザフ語のすべてが表示されないようです。
  • SimSun-ExtB(ラスターフォント)-推奨事項

MS GothicとNSimSunの両方

  • 非ラテン語、非CJK(中国語、日本語、韓国語)言語(マケドニア語、カザフ語、ブルガリア語)のスペースを空けます。
  • アクセント記号付きラテン文字(á、é)の奇数の垂直オフセットがあります。
  • 少なくとも1つのマケドニア語の文字を表示しませんでした。

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

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

これらのフォント、コマンドプロンプトとPowerShellのいずれでも、非ASCII文字をクリックすると奇妙なことが起こりますが、テキストを強調表示すると通常に戻ります。

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

  • レジストリエディタを起動します(「regedit」を実行)
  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Console \ TrueTypeFontフォルダーを探します
  • 右クリック(または編集)->新規->文字列値
  • 最後のフォントよりも1つ多く0をフォントに付けます(「000」など)。
  • エントリを右クリックして、「変更...」を選択します
  • フォントまたはOTFファイルの名前を入力します(.otfなし)。

Windowsのコマンドラインからフォントをインストールする方法については、この質問と回答を参照してください。

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

(注:リンクを投稿するほどの評判はまだありません)。


6

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


11
これはOPの問題の解決策かもしれませんが、高品質の答えというよりもヒントです。1)Windows 10 Bashターミナルのフォントを変更する方法。2)上記のフォントをインストールする方法(デフォルトですべてのWindows 10にある場合を除いて-私はLinuxを使用していますが、わかりません)。
カミルマシオロウスキ

1
以前にUbuntu Monoを使用しましたが、問題がありました。DejaVu Sans Monoはこの問題を解決しました。
smonff

0

これは実際には回答というよりもコメントですが、SEではコメントできないためです...

十分な情報を提供していません。Unicodeは100万を超える文字を提供し、そのうち100,000を超える文字が定義されています。(残りのものは、地球外の人たち、またはまだエンコードされていない地球人の書記体系に連絡するためのものです。)これらは約150のスクリプトに分かれています:ラテン語、キリル文字、アラビア語、中国語...それらすべての文字にグリフ(文字の絵)を提供します。(内部にコードポイントを含むボックスを提供する1つまたは2つがありますが、それはあなたが望むものではありません。)

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

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

ところで、非常に複雑なスクリプトがいくつかあり、適切なフォントを使用している場合でも、一部のプログラムのみがそれらを正しく表示します。これらの中には、ビルマ語、いくつかのインド語のスクリプト(デーバナーガリーなど)、アラビア語(右から左に記述され、隣接する文字に応じて異なる表示が必要な文字があります)があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.