No. 205/622 Index Prev Next
Path: titcca!flab!ichikawa
From: ichikawa@flab.flab.fujitsu.JUNET (I.Ichikawa)
Newsgroups: fj.kanji
Subject: hankaku-kana to zenkaku-kana convertor
Message-ID: < 2102@flab.flab.fujitsu.JUNET> 
Date: 24 Nov 87 03:21:54 GMT
Reply-To: ichikawa@flab.flab.fujitsu.JUNET (I.Ichikawa)
Distribution: fj
Organization: Fujitsu Laboratories Ltd., Kawasaki, Japan
Lines: 49

NKF改造(高速化)をしている(某Q門氏と競って)のですが、その副作用として(
どんな作用だろ?)コード系が判明している時に、半角カナを全角にしてしまう
フィルタが一夜にしてでけてしまいました。(実は二日:-)

でもって、せめてその一部だけでも投稿しようというのですが、
	1)いる人いますか。

カナを見るのにかなり手を抜いています。

つまり、変換テーブルを簡単にするため、0xa0-0xdfしかサポートしていません。
(あれ、これでいいんじゃなかったっけ?知っている人いたらよろしく) それに、
0x3fと& をとると、0xa0-0xb0-0xc0-0xd0は、0x20-0x30-0x00-0x10となるのです。
こうすると、テーブルを0xc0-0xdf,0xa0-0xbfとして並べておけば、いいという
ことになります。(これは、JISとSJISでの8ビット目が立っている場合です、EUC
では、0x8eの後の1バイトを0x3fと& をとって行います。また、コード系共通に、
0x0eと0x0fで挟まれた、0x20-0x5fも、0x3fと& をとって、行います。)

ううむ、ほとんどヒント〇出し。これがわかると、テーブルは、簡単に作れるは
ずです。(コード表と首っぴきならば、1時間でできます)ちなみにテーブル引い
て変換するのは簡単ですが、ややこしいのは、2バイトコードの場合に、特にSJI
Sで、2バイト目とまちがわないようにすることと、JISでの漢字へのシフトの処
理と、各コードでのカナのシフトをうまく処理することです。まあ、そのうちソ
ースを投稿しますが。(いつのことかは、判らないので、至急、必要な方は個人
的に)

そのために、ここで質問です。

はたして、半角カナを使う(あるいは、使ってしまう)人は、
0xe0-0xfeを使うのでしょうか?この領域は、パソコンなんぞでは、グラフィック
キャラクタなんぞがあったり、" 村" 、" 町" 、" 人" 、" 時" 、" 分" 、" 秒" なんぞを使
用できたりするわけです。いったい、この領域を使用しているのでしょうか。

使用していると、このテーブルでは済まないことになるし、だいいち、この領域
は、わりと勝手に各社が使用しているから、どうすればいいかわからない。

そりから、0x0e, 0x25, 0x0fの列が、JISとSJISでは0xa5と等価であるというの
や、EUCでは0x8e, 0xa5であるというのは、これでいいですよね。

というわけで、	1)こうしたフィルタいりますか?
		2)0xe0-0xfeは、(0x0e後の0x60-0x7eといってもいいし、
		EUCでの0x8e後の0xe0-0xfeといってもいい)使わないか?
		3)SI,SOはこれでいいか?
ということです。

−−−	その他、JIS用rot47フィルタ、SJIS用rot47アルゴリズム、
	JISSJISの計算量を減らした変換、確定後の高速変換、
	フィルタのパイプライニング、などなどの技術が派生し
	てきてはいるのです。まあ、そのへんも、そのうち。
								(い)
Next
Continue < 173@falcon.mtl.u-tokyo.JUNET>
< 274@icot32.icot.JUNET>
< 275@icot32.icot.JUNET>
< 103@soumd4.soum.JUNET>
< 755@cskvax.csk.JUNET>
< 2138@flab.flab.fujitsu.JUNET>
< 766@cskvax.csk.JUNET>
< 1213@srava.sra.JUNET>