NKF の UNICODE -> EUC-JP 変換における問題 ― 2005年11月26日 21時03分48秒
NKF における UNICODE マッピングの問題
UNICODE -> EUC-JP に変換した時に次のような変換が行われます。
NKF 2.0.4 NKF 2.0.5 開発中のNKF
.
I (U+0130) (0x00) 削除 削除
'
y (U+00fd) (0xc0) 削除 y (0x79)
-D (U+00d0) (0xc0) 削除 削除
_
E (U+0114) (0x00) 削除 削除
_
e (U+0115) @ (0x40) 削除 削除
'
g (U+0123) (0xc0) 削除 削除
'
O (U+01fe) (0xc0) 削除 削除
^
o (U+01ff) (0xc0) 削除 削除
\ (U+00a5) (0xc0) 削除 \ (0x5c)
(c) (U+00a9) (0x00) (0x00) c (0x63)
(R) (U+00ae) (0x80) 削除 R (0x52)
* ここでテストした文字以外でも不具合が生じる可能性はあります。
NKF 2.0.4 では誤変換が多く、特に 0x00 に変換されるのものは C 言語で取り扱う際に不都合が生じます。
NKF 2.0.5 ではほぼ理想的に変換できない文字が削除されていますが、(c)だけは例外で 0x00 に変換されてしまいます。 開発中のNKF(2005/11/26現在のバージョン)では、UNICODE の正規化処理が入り、字形の近い別の文字に変換されてしまっています。
NKF 2.0.5 ではほぼ理想的に変換できない文字が削除されていますが、(c)だけは例外で 0x00 に変換されてしまいます。 開発中のNKF(2005/11/26現在のバージョン)では、UNICODE の正規化処理が入り、字形の近い別の文字に変換されてしまっています。
このまま 2.0.6 としてリリースされると、いろいろ混乱が生じるかもしれません。
\ (U+00a5) が \ (0x5c) に変換される 円問題 は、Windows 環境においてパス区切り文字に変換されることを意味します。
また、字形の近い別のアルファベットに変換される問題は、Windows 環境において、DDN に変換される危険性をはらんでいます。
これらは逆変換が不可能なため、変換後に排除するのは困難です。
\ (U+00a5) が \ (0x5c) に変換される 円問題 は、Windows 環境においてパス区切り文字に変換されることを意味します。
また、字形の近い別のアルファベットに変換される問題は、Windows 環境において、DDN に変換される危険性をはらんでいます。
これらは逆変換が不可能なため、変換後に排除するのは困難です。
コメント
トラックバック
このエントリのトラックバックURL: http://namazu.asablo.jp/blog/2005/11/26/156199/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
_ ナマズのブログ - 2005年11月27日 08時23分49秒
NKF における UNICODE マッピングの問題
UNICODE -> EUC-JP に変換した時に次のような変換が行われます。
2005-11-27版で次のように修正されました。
NKF 2.0.4 NKF 2.0
UNICODE -> EUC-JP に変換した時に次のような変換が行われます。
2005-11-27版で次のように修正されました。
NKF 2.0.4 NKF 2.0


コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。