シフトJIS出力の実装
UTF-16で入力し、シフトJISの各CCSで出力して確認しながら、実装中。
この実装は内部コードの都合から、入力がJIS系かUnicode系かにより、動作が大きく変わってきます。
まぁ、SJISの出力でも、出力間際では一旦、殆ど全てをUnicodeに変換しているんですが、その手前は色々な符号に合わせた調整なんかをしているわけです。
実装するJISとUnicodeの変換表はJIS X 0208/0212/0213だけです。
従って、JIS C 6226の場合、一旦JIS X 0208にあるかどうかをチェックした後、更にJIS C 6226に無い文字をはじく、といったような処理が入るわけです。また、符号位置が入れ替わっているものを、適切に処理しなければなりません。
PC-9801を出力にしたなら、98文字は通す、などの加工をする。
一応、実装のテストは、次の文字を入力し、その出力を見るようにしている。
・第一水準の普通の文字
・JIS C 6226になく、JIS X 0208で新規登録された文字
・JIS C 6226とJIS X 0208で入れ替わっている文字
・JIS X 0208-1983で第二水準に追加された文字
・JIS X 0208-1990で第二水準に追加された文字
・98文字にあるもの
・IBM文字にあるもの
・連結の文字「かに半濁点」
・JIS X 0213のplane 2にある文字
・CJK Ideograph Extension Bにある文字(UTF-16ではサロゲート、JIS X 0208ではplane 2)
他にもパターンはありそうだけども、当面はこのパターンでテストする。
出力については、現在は全方式にて合格している。次は、入力に対応するよう改良を進めていく。
この実装は内部コードの都合から、入力がJIS系かUnicode系かにより、動作が大きく変わってきます。
まぁ、SJISの出力でも、出力間際では一旦、殆ど全てをUnicodeに変換しているんですが、その手前は色々な符号に合わせた調整なんかをしているわけです。
実装するJISとUnicodeの変換表はJIS X 0208/0212/0213だけです。
従って、JIS C 6226の場合、一旦JIS X 0208にあるかどうかをチェックした後、更にJIS C 6226に無い文字をはじく、といったような処理が入るわけです。また、符号位置が入れ替わっているものを、適切に処理しなければなりません。
PC-9801を出力にしたなら、98文字は通す、などの加工をする。
一応、実装のテストは、次の文字を入力し、その出力を見るようにしている。
・第一水準の普通の文字
・JIS C 6226になく、JIS X 0208で新規登録された文字
・JIS C 6226とJIS X 0208で入れ替わっている文字
・JIS X 0208-1983で第二水準に追加された文字
・JIS X 0208-1990で第二水準に追加された文字
・98文字にあるもの
・IBM文字にあるもの
・連結の文字「かに半濁点」
・JIS X 0213のplane 2にある文字
・CJK Ideograph Extension Bにある文字(UTF-16ではサロゲート、JIS X 0208ではplane 2)
他にもパターンはありそうだけども、当面はこのパターンでテストする。
出力については、現在は全方式にて合格している。次は、入力に対応するよう改良を進めていく。
2008/11/20(木)23:43 |Comments(0) |Trackback(0) |製造開発 | [編集]

