0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PythonのIDLEにIVS付きの文字を入力すると落ちる件のメモ

Last updated at Posted at 2019-08-21

#落ちる
 IDLEのシェルまたはエディタで IVS付きの文字を入力すると、何も言わずに実行を終了する。
 ※ Windows10 の Python 3.7.3 (64bit) で確認。Windows 以外はわかりません。

 キーボードからIVSを入力するのは少々面倒なので、大抵はコピペした文字列にそういう文字が混じっていたというケースになります。そういったデータを扱う機会の多い人が IDLEで何かしようと企んだ時だけ起こりうる事故で、とてもびっくりします。
 ※ たとえば次項「IVSとは」の本文を貼り付けると、落ちます。

【追記】 (2020-06-28)
これはPython 3.8以降および3.7のメンテナンスリリースで修正されています。8年越しの懸案だったようです・・
課題13153 IDLE 3.x on Windows exits when pasting non-BMP unicode

#IVSとは
 IVSは「異体字セレクタ」の一種で、フォントが内蔵する別字体をUnicodeで指定するための仕組み。

 例として、「(U+9032)」を表示するとき。
」の左側は、戦後日本では一点のしんにょう()とされているが、もし二点()で表示したい場合には、文字コードの後にセレクタを付与して「進󠄁(U+9032, U+E0101)」あるいは「進󠄃(U+9032, U+E0103)」とすれば選択できる。
……と、UnicodeコンソーシアムのIVD(漢字異体字データベース)には登録されている。

 ※ U+E0101 の方は「Adobe-Japan1」コレクション、U+E0103 の方は「Hanyo-Denshi(汎用電子情報交換環境整備プログラム)」コレクション、または「Moji_Joho(文字情報基盤整備事業)」のコレクション

 実際に表示されるかどうかはフォントの実装次第。なので、どれも「進」にしか見えない可能性もあるが、使用フォントが例えば Adobe-Japan1 に対応する「游ゴシック」か「游明朝」ならば、「進󠄁(U+9032, U+E0101)」は二点(辶)になるだろう。

#参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?