キーの「本名」ビットでUnicodeを使用する方法


4

GPGはUnicodeをサポートしているようですが、実際には動作しません

% gpg --utf8-strings --display-charset utf-8 --edit-key king@example.com
gpg (GnuPG) 1.4.15; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: key xxxxxxxx: duplicated user ID detected - merged
Secret key is available.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub  4096R/xxxxxxxx  created: 2014-02-20  expires: never       usage: SC
                     trust: ultimate      validity: ultimate
sub  4096R/xxxxxxxx  created: 2014-02-20  expires: never       usage: E
[ultimate] (1). King George \xe2\xa3\x20<king@example.com>

gpg> uid

pub  4096R/xxxxxxxx  created: 2014-02-20  expires: never       usage: SC
                     trust: ultimate      validity: ultimate
sub  4096R/xxxxxxxx  created: 2014-02-20  expires: never       usage: E
[ultimate] (1). King George \xe2\xa3\x20<king@example.com>

gpg> adduid
Real name: King George Ⅳ      ### I type this.
Email address: king@example.com
Comment:
You are using the `utf-8' character set.
You selected this USER-ID:
    "King George � <king@example.com>"    ### Terminal notes corruption.

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

You need a passphrase to unlock the secret key for
user: "King George \xe2\xa3\x20<king@example.com>"
4096-bit RSA key, ID xxxxxxxx, created 2014-02-20


pub  4096R/xxxxxxxx  created: 2014-02-20  expires: never       usage: SC
                     trust: ultimate      validity: ultimate
sub  4096R/xxxxxxxx  created: 2014-02-20  expires: never       usage: E
[ultimate] (1)  King George \xe2\xa3\x20<king@example.com>
[ultimate] (2). King George \xe2\xa3\x20<king@example.com>  ### That's not correct UTF-8.
  • 私の端末はUTF-8を使用するように設定されています。
  • LANG=en_US.UTF-8

下に注目してください:UTF-8シーケンスは正しくありませんが、近いです!存在するはずの3バイトシーケンスの中央のオクテットが欠落しています。真ん中のオクテットを落とすためにできることは何もないと思うので、ここで何が起こっているのでしょうか?


どのユニコード文字を追加しようとしましたか?私はそれを少し...テストします
ベン

@Ben:問題は、### I type this.「Ⅳ」の行にあります— RO​​MAN NUMERAL FOUR、U + 2163。
タナトス

さて、あなたのシステムはどのバージョンのユニコード標準をサポートしており、すべてのインターフェースでその完全な仕様をサポートしていますか?ところで、第2部への答えはほぼ間違いなく「いいえ」ですが、私はむしろそうは思いません。
ベン14

ところで、私の推測では、システムの他の部分がサポートしているにもかかわらず、コマンドラインでGPGとやり取りするために使用されるインターフェイスやフォントはその文字をサポートしていません(ここで試したときに同じことが起こりました)。
ベン14

@Ben「コマンドラインでGPGとやり取りするために使用されるインターフェイスおよび/またはフォント」は端末です。OS XのiTerm2かLinuxのgnome-terminalかは忘れましたが、どちらも優れたUnicodeサポートを備えており、両方ともフォントを備えています。入力のエンコーディングは端末アプリケーションによって決定されます(デフォルトではほぼどこでもUTF-8です)。これもLANG環境変数を介してアプリケーションに伝えられ、正しく設定されます。これはGnuPGのバグであることが判明したため、これに答える必要があります。(IIRC、gpg2は正常に動作します。gpgは動作しません。)
タナトス14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.