サロゲートペア関連でおかしいところNo.11591
elbow さん 06/12/06 00:24
 
こんにちは

とりあえず気がついたところ等を報告します
・折り返しが存在する場合ctrl-endで行末に行くと文字の真ん中にカーソルが行く

・ほぼ同じですが折り返し先からleftキーで折り返し行に戻ると文字の真ん中にカー
ソルが行く

・検索ダイアログで検索文字列の追加取得で半分だけ取得する

・検索ダイアログはフォントの設定に連動してフォントが変わりますが
検索ボックスのフォントは変わらない。(タブモードの場合もあるのでしょうがない
かも知れないですが)

・文字コード表示コマンドでUTF-8コードが出ない(要望?)

・マクロのunicode関数が対応していない

環境: windowsXP SP2 + 秀丸6.50β4

[ ]
RE:11591 サロゲートペア関連でおかしいとNo.11610
秀丸担当 さん 06/12/06 15:56
 

>とりあえず気がついたところ等を報告します
>・折り返しが存在する場合ctrl-endで行末に行くと文字の真ん中にカーソルが行く
>
>・ほぼ同じですが折り返し先からleftキーで折り返し行に戻ると文字の真ん中にカー
>ソルが行く
>
>・検索ダイアログで検索文字列の追加取得で半分だけ取得する

いつも的確なご指摘ありがとうございます。
それぞれ確認できました。
次で修正させていただきます。


>・検索ダイアログはフォントの設定に連動してフォントが変わりますが
>検索ボックスのフォントは変わらない。(タブモードの場合もあるのでしょうがない
>かも知れないですが)

これはとりあえずこのままとしておきたと思います。


>・文字コード表示コマンドでUTF-8コードが出ない(要望?)

4バイトのUnicodeの場合、もはやUTF-8では対応する文字コードとは言えず、バ
イトの羅列なので、UCS-4の0x00020000の文字をUTF-8にすると
 ED A1 80 ED B0 80
みたいなことになります。
これを文字コード表示として「0xEDA180 0xEDB080」とか「0xEDA180EDB080」と
か表示するとしたら何か間違っている気がします。
もともと「あ」を「0xE38182」とか表示していることがそもそも変な気もします
が。「あ」も「E3 81 82」と表示するべきかもしれないですが。


>・マクロのunicode関数が対応していない

unicodeは何も考えてなかったです。strlen等も、互換性重視で半角か全角かの
換算でいけばサロゲートペアもバイト数ではなく文字幅で計算しなくては互換性
が完全とは言えないです。そこらへんも対応できるようにしたいと思います。
unicode関数とunichar関数はサロゲートペアというよりUCS-4で扱えるようにし
ようと思います。

[ ]
RE:11610 サロゲートペア関連でおかしいとNo.11630
elbow さん 06/12/06 22:28
 
こんにちは

>もともと「あ」を「0xE38182」とか表示していることがそもそも変な気もします
>が。「あ」も「E3 81 82」と表示するべきかもしれないですが。

他のスレッドでも出ましたが、基本的にはUTF-8でエンコードした結果を
文字列で表示という意味でいいのではないかと。なので文字コード表示コマンド
で出てくるべきではないという考えもありますが、それはそれとして
私は結構使ってたりします
表示の仕方の問題はありますが、人間が見る分には現行の表示方法で
問題ないかと。厳密に言うなら「E3 81 82」と表示するべきかも知れませんが。

[ ]
RE:11630 サロゲートペア関連でおかしいとNo.11635
秀丸担当 さん 06/12/07 11:24
 

>他のスレッドでも出ましたが、基本的にはUTF-8でエンコードした結果を
>文字列で表示という意味でいいのではないかと。なので文字コード表示コマンド
>で出てくるべきではないという考えもありますが、それはそれとして
>私は結構使ってたりします
>表示の仕方の問題はありますが、人間が見る分には現行の表示方法で
>問題ないかと。厳密に言うなら「E3 81 82」と表示するべきかも知れませんが。

別のスレッドでもありましたがサロゲートペアをUTF-8エンコードするという勘
違いをしていたようなので、UTF-8の1文字4バイトぶんを0xXXXXXXXXという表
示ならまあいいかなぁという気がしてきました。
そのようにしてみようと思います。

[ ]
RE:11635 サロゲートペア関連でおかしいとNo.11742
elbow さん 06/12/13 00:17
 
こんにちは。

>UTF-8の1文字4バイトぶんを0xXXXXXXXXという表
>示ならまあいいかなぁという気がしてきました。
>そのようにしてみようと思います。

こちらの件ですが、秀丸6.50β8で対応されていることを確認しました。
どうもありがとうございます。

[ ]