島村 優太郎
ml****@ryne*****
2006年 10月 20日 (金) 21:03:21 JST
島村です。 On Oct 20, 2006, at 4:19 PM, Tasuku SUENAGA wrote: > Shift-JISとEUC-JPについても、 > NFKCと同等の正規化を実現できるとうれしいと思っ > ていますが、 > まだ実現できていません。 > 誰かstr.cとutil/unicode/nkfc.rbをいじってくれないかな… util/unicode/nfkc.rb見てみました。 Rubyわかんないですが。爆 sjisだけでも結構大変なのに、いろんなところで文 字のチェックを行っているみたいで 結構見ててびっくりしてます。 もう少しstr.cとかlex.cを眺めてたいなぁ。とか。 > 現在のnormalize_sjisの実装は、 > 一つの文字が正規化後に複数の文字に対応するこ > とを想定していないので、 > 確かに○付き文字+2桁数字の正規化はキビしい > ですね… > >> (*d++とlength++やったりとか、めちゃくちゃしてます) > 大きく手を入れないのなら、その方向で良いと思 > います。 > > *d++してlength++してる箇所で > > if (cp) { *cp++ = sen_str_digit; } > > も実行してやればうまく行きそうに思えます。 > > もしダメだったら、パッチを見せて頂けると何か > 分かるかも知れません。 これなんですが、ほんとに初歩的なミスと言います か、 *d=の後の指定に0xをつけなかったので、文字がおか しくなっていただけでした。 実際には case 0x49: *d = 31; // ここは0x31とかかな きゃいけないのに *d++; length++; *cp++ = sen_str_others; *d = 30; // ここも break; こうになっていて、文字がおかしくなっていただけ でした。。 手間をお掛けさせてしまい、申し訳ございません。。 今の所、sjisの個人的な部分(ひらがな|カタカナの大 小文字正規化)以外の部分 (絵文字正規化、記号正規化とか)が終わったら、 パッチにして流してみようと思います。 ご回答ありがとうございました。 ------------------☆ 島村 優太郎 ml****@ryne***** ------------------☆