SSHからFreeBSDへ(UTF-8)

SSHからFreeBSDへ(UTF-8)

Minttyを使用してWindowsシステムでFreeBSD-11.2-Releaseにsshを試していますが、LC_ALLをen_US.UTF-8に設定し、ASCII以外の文字を入力/貼り付けようとすると接続が閉じます。

私はCygwinを使用しており、QterminalとTerminatorも試してみました。

FreeBSD 11.2リリースでUTF-8文字に問題がありますか?それとも、これはWindowsに限定されています(macOSまたはLinuxユーザーはこれに問題がないことを意味します)?

注:私のFreeBSDコンピュータにはWindowsがインストールされていません。

ベストアンサー1

設定を宣言しましたが、LC_ALL正しく設定したかどうかはわかりません。実際にすべてが含まれています。FreeBSD マニュアル: 22.2。ローカライゼーションの使用

「シェル起動ファイルメソッド」(.profile)の代わりに「ログインクラスメソッド」(login.conf)を使用することは、システムとシェル全体でより一貫しているため、強くお勧めします。

人々は言語関連の設定を変更したと言うとき、次の2つを忘れてしまいます。

  1. /etc/login.conf(システム全体)または(ユーザー)を変更するときは、~/.login.conf以下を実行する必要があります。cap_mkdbどんな効果!
  2. テストするときに新しいセッションを開始することを忘れないでください!

最初に行うことは、localコマンドを実行して設定を確認することです。一般的なFreeBSDシステムでは、以下が表示されます。

$ locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=

これらの設定を使用すると、最も一般的な端末でUnicodeの問題が発生します。 PuTTYを使用していますが、次のテストを端末に貼り付けることはできません。

ÆØÅ жз ઑ ᱵ

これは、FreeBSDがデフォルトでUnicodeを使用していないためです。この回答は11.2でテストされていますが、13以降のデフォルトは「C.UTF8」なので、変更する必要はありません。ただし、通常のインストールでは、ユーザーが「ロシア語」を有効にすると、非常に迅速に確認できます。その理由は、ロシア語が既成の定義(で/etc/login.conf)がある唯一の言語であり、Unicodeを使用するためです。

pw usermod johndoe -L russian

今ログイン新しい「johndoe」アカウント(あなたのユーザー名は何でも)を使ったセッションです。これで、上記のテストのUnicodeをシェルに貼り付けることができます。次のコマンドを使用して設定をインポートする方法を確認します。locale

$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_ALL=

デフォルトのUnicodeが実際に機能していることを確認したので、必要に応じて設定を開始できます。私はデンマーク人なので、次の簡単な手順に従います。

1.言語設定を追加

必要な言語ごとにセクションを追加します。/etc/login.conf

danish|Danish Users Accounts:\
        :charset=UTF-8:\
        :lang=da_DK.UTF-8:\
        :tc=default:

2. データベースの更新

ソース login.conf を編集するたびにデータベースを更新する必要があります。

cap_mkdb /etc/login.conf

3. ユーザー言語の設定

私は主にpwユーザーを管理するために使用します。ユーザーを作成または変更するときに言語を指定するだけです。

pw useradd janedoe -L danish

ヒント:個人的に好むのは、システム全体の「デフォルト」を変更するのではなく、デフォルトのままにすることです。次に、システムアカウントの言語(「postgres」など)を設定します。あなたのシステムアカウントにあなたの言語設定に含まれていない非常に具体的な設定が必要な場合/etc/login.conf

ヒント2:上記は、ユーザーに基づいてカテゴリを設定する方法を示しています。システム全体の変更を希望する場合できるlogin.confで「基本」クラスを変更します。

パテのヒント:端末は当然UTF-8もサポートする必要があります。 PuTTYでは、設定:Window ⮕ Translationにあります。鉱山は「UTF-8」に設定されています。 CJK領域にいる場合は、CJKのあいまいな文字をワイド文字として処理することを選択することをお勧めします。キリルユーザーはしばしば「キリルスイッチとしてのCaps Lock」が好きです。

おすすめ記事