tty1で読み取れないダイヤモンド文字

tty1で読み取れないダイヤモンド文字

私のDebian Jessieに問題があります。一般的に私はGUIでtty7を使用しますが、ここではすべてが大丈夫です。ただし、tty1では、ポーランド語文字(UTF-8ファイルから入力して読み取った文字の両方)が垂直ダイヤモンドまたは菱形で表示されます。同様に、すべて白(黒の背景)のみがあります。

私の位置が良いと思います。

LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=

tty7のGUIでも同じで、ここではすべてが正常です。私の知識と経験から見ると、tty1が機能するはずです。しかしそれは真実ではない。どのようなヒントがありますか?

答え1

GUIの有効化tty7tty1XフォントはLinuxコンソールフォント(512文字の他の文字に限定されています)と共に使用されます。 Linuxコンソールには、Unicodeのあるダイヤモンドの外観(フォントによって異なります)が表示されます。文字を置き換える表示したいコードが正当なUTF-8ではないために表示されます。

ISO-8859-1などを使用すると、この動作が得られます。 ISO-8859-1コードを覚えておきます。0xa0到着0xffUnicodeへのマッピング0x00a0到着0x00ff。しかし、UTF-8ではバイトが異なって見えます。

「タイプ」ファイル(使用することができますcat)は、ロケール設定の影響を受けません。これコーディングデータとモデル端末(UTF-8かどうか)は、文字が正常に印刷されるかどうかを決定します。

興味深い(間違った)機能rxvt - UnicodeこれはUTF-8以外のデータを発見し、ISO-8859-1であると仮定して(自動的に)Unicodeに変換することです。ポーランド語はISO-8859-2で、基本的に同じように見えます。

rxvt-unicode を使用して UTF8 以外のポーランド語テキストを調べると、問題のすべての症状が説明されます。

このfileユーティリティは、テキストがUTF-8かどうかを合理的に推測できます。

説明が終わった後にコンテンツを表示できるスクリーンショットは次のとおりです。できるLinuxコンソールのデフォルトフォントから取得します。これは以下を使用します。呪いより多くまたは少ないコード0-255を表示するテストプログラム:

まず、UTF-8モードのLatin-1文字:

UTF-8のLatin-1オーバーレイ

その後、Latin-1文字があります。いいえUTF-8モード:

UTF-8なしのLatin-1カバレッジ

UTF-8モードを使用しますが、実行luitISO8859-2エンコーディングを使用し、同じテスト手順を使用しますpl_PL(少しバイパスですが、比較可能です)。

Latin-2を扱うには、<code>luit</code>を使用してください。

そしてそれを組み合わせるxterm:

Latin-2を扱うには、<code>xterm</code>を使用してください。

要約すると、いくつかのキャンディーラテン語1LinuxコンソールでUTF-8モードを使用する制限付きフォント文字セット。しかし、ポーランド語(他の文字セット)はうまく扱われているようです。

関連情報