作者: davi
日時: 2005/12/04(20:10)
Bruce.さん みずはさん & おる <  こん??は でび です

On Sun, 04 Dec 2005 03:47:26 +0900
"Bruce." <kbk@...> wrote:

> こっちでもやりますけど、どの文字でもいいんで、
> エラーメッセージの引き金になっている文字を特定できますか?

SJISで表現できる範囲の「かな、カナ、CJK統合漢字」
をUnicode配列順で表現すると以下のようになります。

[ぁ-ゞ]   [ァ-ヾ]   [一-龠]

Unicode文字を16進数で指定する方法ってありますか?

例えば [\x4E\x00-\x9F\xA0] なんて書くと「\x00-\x9F」
だけが範囲指定対象になるはずなのでNGですよね?

 [(\x4E\x00)-(\x9F\xA0)] で良いのでしょうか?

「\u01234」などの表記で、文字を指定できるのならば、
「CJK統合漢字」の終端位置9FA5 も指定できるのですが。

さて、

s/\([ァ-ヾ]\)\([ぁ-ゞ]\)/\1\
\2/g

s/\([ぁ-ゞ]\)\([ァ-ヾ]\)/\1\
\2/g

s/\([ぁ-ゞ]\)\([一-龠]\)/\1\
\2/g

s/\([一-龠]\)\([ぁ-ゞ]\)/\1\
\2/g

s/\([ァ-ヾ]\)\([一-龠]\)/\1\
\2/g

s/\([一-龠]\)\([ァ-ヾ]\)/\1\
\2/g

で試すと、エラーが出ました。

よくよく対象テキスト(芥川のトロッコで試しました)を
見てみると「―」が入っていました。
「―」はSJISでは815C、Unicodeでは2015。

アヤシイと思って、SJISで指定できる範囲の全角記号類を
調べると

00A7〜266F [§-♯]
3000〜301F [ -?]
FF01〜FF5E [!-〜]

と、Unicodeでは各所に分散しています。
(まだ他にあるかもしれません。)

このSJISで表現できる全角記号関係の扱いがエラーの元の
ような気がします。

Unicode中でどのように分散しているのか、網羅的に調べて
みなければなりませんね…。

でび  http://homepage1.nifty.com/davi/