bash(またはPuTTY)が2文字の「cd」を単一の文字「㏅」と解釈するのはなぜですか?

bash(またはPuTTY)が2文字の「cd」を単一の文字「㏅」と解釈するのはなぜですか?

私はPuTTY経由でCentOS仮想マシンにSSH経由で接続しました。ログインしてbashシェルを取得した後、cd別のディレクトリに移動しようとしましたが、入力した内容が少し遅くなり、「cd」の代わりに次のメッセージが表示されました。単一文字「㏅」。 Enterキーを押したため、bashはコマンドが見つからないことをユーモラスに伝えます。

ここに画像の説明を入力してください。

その後、cd追加sを正しく解釈します。

ちょっとした調査の終わりに、その文字がUnicode文字「Square CD」であることがわかりました。CJK対応ブロック、東アジアの文字セットとの互換性を提供するように設計されています。特に、この文字はSI単位を表します。カンデラ、明るさの基本単位なのに素晴らしいと思います。

とにかくこれを再現する方法がわからない。数回再度ログインしようとし、すぐに「cd」と入力しましたが、毎回正しく解釈されました。

私のPuTTYバージョンは次のとおりです。 (PuTTYTray p0.67-t029更新する必要があるようです。)

出力uname -aLinux xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 6 15:49:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

バッシュバージョンは次のとおりです。GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

「翻訳」がどこで起こるのか、bashかPuTTYなのか、なぜ起こるのかは不明です。 「折りたたみ」をシングルに…?それとも別のものですか? 'c'と 'd'の2バイトが '㏅'に結合されません(確認しました!)(でもそれほどクールなら)

とにかく、誰でも説明できるなら知りたいです!

ベストアンサー1

おすすめ記事