Project

General

Profile

Actions

Bug #7005

closed

NKF: CP50221 から CP932 に変換できない文字がある

Added by tommy (Masahiro Tomita) over 12 years ago. Updated over 12 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
Backport:
[ruby-dev:46128]

Description

NKF で CP50221 から CP932 に変換できない文字があります。
CP932 で 0xF040 から 0xF9FC までの文字のうち 589 文字が変換できません。
どうやら CP50221 で1バイト目が 0x80 以上で2バイト目が 0x21-0x3F の文字が変換できないようです。

以下のプログラムは CP932 で 0xF040 から 0xF9FC までの文字を CP50221 に変換して CP932 に戻して、
空文字列になってしまうものを出力してます。

Ruby 1.8.7 では変換できない文字はありませんでした。

require 'nkf'
(0xf0..0xf9).each do |c1|
(0x40..0xfc).each do |c2|
next if c2 == 0x7f
cp932 = [c1, c2].pack("C*")
cp50221 = NKF.nkf("-m0x --ic=cp932 --oc=cp50221", cp932)
cp932_bak = NKF.nkf("-m0x --ic=cp50221 --oc=cp932", cp50221)
if cp932_bak.empty?
puts [cp932.unpack("H*"), cp50221.unpack("H*")].join(" ")
end
end
end

Updated by tommy (Masahiro Tomita) over 12 years ago

Ruby 1.8.7 の ext/nkf を 1.9.3 で無理やりコンパイルしてみたところ問題なかったので
NKF のバージョンによるものなのかもしれません。

Updated by tommy (Masahiro Tomita) over 12 years ago

NKF の問題だったので NKF のフォーラムに投稿しました。
http://sourceforge.jp/forum/forum.php?thread_id=32783&forum_id=1007

Actions #3

Updated by naruse (Yui NARUSE) over 12 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r36968.
Masahiro, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


Actions

Also available in: Atom PDF

Like0
Like0Like0Like0