- 作成者投稿
- 2017年11月15日 9:44 am #24272redakt55参加者
選択した文字列の文字数がステータスバーに表示されますが,基本多言語面(BMP: Basic Multilingual Plane)外の文字(U+10000~)が 2 文字とカウントされるみたいです。
内部は UTF-16?2017年11月17日 9:06 am #24277Yutaka Emuraキーマスターredakt55 様
いつもお世話になっております。江村です。
ご指摘の通り、内部は UTF-16 で、Microsoft Word などと同様に桁数は、基本多言語面(BMP: Basic Multilingual Plane)外の文字(U+10000~)が 2 文字とカウントされます。
よろしくお願い申し上げます。
2017年11月17日 2:32 pm #24279redakt55参加者仕様ということでしょうか?
率直な感想を述べると,受け入れがたいです。まず,技術的にはその数え方は code unit を数えているのであって,文字を数えてはいません。
JavaScript の String.length も同じ動作ですが,これは文字数を表すプロパティーではなく,UTF-16 の code unit で測った長さを返す関数です。(よく「文字数を表す」と書いてありますが,それは解説のほうが間違っている)また,内部が UTF-16 なのは実装の都合であって,ユーザーにはあずかり知らぬことです。「メモリー上でこうなってるから 𩸽 や 𡈽 や 😀 を二文字と数えさせて」といわれても,多くのユーザーにはその意味するところさえ分からないのではないでしょうか。そして,具体的にどの文字がおかしな数え方になるかも分からないでしょう。
Microsoft Word も同じとのことですが,それは Word が異常なだけで,LibreOffice Writer はちゃんと文字数を表します。
2017年11月18日 1:41 am #24281Yutaka Emuraキーマスターredakt55 様
いつもお世話になっております。江村です。
私も同意見ですので、将来のバージョンで修正を検討させてください。ただし、これによって動作が遅くなる可能性がありますので、オプションとして提供する可能性はあります。
よろしくお願い申し上げます。
2020年10月19日 12:40 am #29466Yutaka Emuraキーマスターredakt55 様
大変遅くなりましたが、EmEditor v20.3 beta 3 (20.2.903) で修正対応いたしました。オプションはありません。
よろしくお願い申し上げます。
- 作成者投稿
- このトピックに返信するにはログインしてください。