UTF-16 エンコーディング時の 'DEL' の扱No.18618
efialtes さん 05/01/01 16:03
 
バージョン 4.14 です。UTF-16 ファイルで、'DEL' 文字 (0x7f) が含まれている場
合、変換できなかったというダイアログがでてしまいます。Shift-JIS や UTF-8 な
ど、他のエンコーディングでは起きませんが、UTF-16 エンコーディングでセーブし
ようとしても出るようです。

とりあえず報告まで。

# UTF-8 が問題ないので、何だろうなぁ。

[ ]
RE:18618 UTF-16 エンコーディング時の 'DNo.18621
秀丸担当 さん 05/01/04 15:58
 

>バージョン 4.14 です。UTF-16 ファイルで、'DEL' 文字 (0x7f) が含まれている場
>合、変換できなかったというダイアログがでてしまいます。Shift-JIS や UTF-8 な
>ど、他のエンコーディングでは起きませんが、UTF-16 エンコーディングでセーブし
>ようとしても出るようです。

UTF-16の認識は、全て認識すると、ありとあらゆるファイルがUTF-16として認め
られてしまうので、自動判別の精度を上げるために、制御文字の一部をUTF-16の
テキストと認識しないようになっています。
問題がある場合は改善していきたいと思います。
0x007fの場合は、変換できないというダイアログが出ても、データが失われるこ
とはないと思います。

[ ]
RE:18621 UTF-16 エンコーディング時の 'DNo.18635
efialtes さん 05/01/05 22:35
 
>自動判別の精度を上げるために、制御文字の一部をUTF-16の
>テキストと認識しないようになっています。

んー、故意でしたか。結構邪魔かもしれません。スイッチか、明示指定か、先頭に B
OM がある場合は黙らせるのを希望です。よろしくお願いします。

[ ]
RE:18635 UTF-16 エンコーディング時の 'DNo.18638
秀丸担当 さん 05/01/06 17:03
 

>んー、故意でしたか。結構邪魔かもしれません。スイッチか、明示指定か、先頭に B
>OM がある場合は黙らせるのを希望です。よろしくお願いします。

[その他]→[動作環境]→[ファイル]→[エンコード2]で、警告のメッセージを表
示するかどうかの設定ができます。
これを無効にするというのではどうでしょうか。
これを無効にすることで自動判定ができなくなるわけではありません。

[ ]
RE:18638 UTF-16 エンコーディング時の 'DNo.18655
efialtes さん 05/01/09 20:58
 
>
>>んー、故意でしたか。結構邪魔かもしれません。スイッチか、明示指定か、先頭に B
>>OM がある場合は黙らせるのを希望です。よろしくお願いします。
>
>[その他]→[動作環境]→[ファイル]→[エンコード2]で、警告のメッセージを表
>示するかどうかの設定ができます。
>これを無効にするというのではどうでしょうか。

こうなると、いよいよ私のとこの固有事情という気がしますが、これではダメです。
よく使うのが、UTF-16, EUC-JP, iso-8859-1 なので、標準のエンコーディングが EU
C-JP にしてあって、iso-8859-1 は落ちることで欧文に切り変え、UTF-16 は BOM 期
待、と使い分けているので、上記セッティングでは EUC-JP と iso-8859-1 とのチェ
ックの警告が出なくなって困るため。

でも、そもそも UTF-16 不正の切り分けで一部コントロールコードを叩き落とすのが
そんなに効果があるような気もしませんが、いかがでしょう?
∵ UTF-16 に DEL コードが含まれにくいならば、他のコードセットにも含まれにく
いはずで、かつ秀丸でサポートしている他のコード系では 0x7f 0x00 という並びっ
て出てこないのではないかと思います。そもそも 0x00 って出てくる可能性のあるの
ヴェトナム語ぐらいじゃありません?

[ ]
RE:18655 UTF-16 エンコーディング時の 'DNo.18659
秀丸担当 さん 05/01/11 16:11
 

>でも、そもそも UTF-16 不正の切り分けで一部コントロールコードを叩き落とすのが
>そんなに効果があるような気もしませんが、いかがでしょう?
>∵ UTF-16 に DEL コードが含まれにくいならば、他のコードセットにも含まれにく
>いはずで、かつ秀丸でサポートしている他のコード系では 0x7f 0x00 という並びっ
>て出てこないのではないかと思います。そもそも 0x00 って出てくる可能性のあるの
>ヴェトナム語ぐらいじゃありません?

確かにその通りだと思います。
この判定は無くしてみようと思います。
この判定は、UTF-16の時だけのように見えますが、UTF-8とUTF-7の場合などでも、
Unicodeにデコード後の値が有用であるかどうかを判定するためにも使われてい
ました。

[ ]
RE:18659 UTF-16 エンコーディング時の 'DNo.18669
efialtes さん 05/01/16 13:54
 
>確かにその通りだと思います。
>この判定は無くしてみようと思います。

よろしくお願いします (_ _)
# UTF-8 での DEL もこの判定で叩いているって話は誤記ですよね。< 0x80 なコー
ドが 2byte 以上を使ってエンコーディングされている場合は、Unicode 規約上不正
文字としてたたき落とせるはずですので。

[ ]