Project

General

Profile

Feature #6349

Iconv の復活を希望します

Added by kyanagi (Kouhei Yanagita) over 8 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-dev:45571]

Description

r35444 で Iconv が削除されましたが、例えば Iconv.conv('UTF-8', 'EUC-JISX0213', line) のようなコードは
Ruby の Encoding が EUC-JISX0213 に対応していないため、単純に String#encode に置き換えることができません。
(私の場合だと、SKKのJIS第三・第四水準辞書 http://openlab.ring.gr.jp/skk/wiki/wiki.cgi?page=SKK%BC%AD%BD%F1#p25
を扱っているスクリプトで上のようなコードを書いています)

このように String#encode では扱えないケースがあるため、Iconv の復活を希望します。

Updated by kyanagi (Kouhei Yanagita) over 8 years ago

こんにちは。柳田です。

2012年4月24日16:55 "Martin J. Dürst" duerst@it.aoyama.ac.jp:

EUC-JISX0213 以外に、必要が String#encode にない文字コードはありますか。

ひとまず私の使っている範囲では、EUC-JISX0213 があれば十分です。

--
柳田 浩平 / やなぎた こうへい
Kouhei Yanagita yanagi@shakenbu.org

Updated by duerst (Martin Dürst) over 8 years ago

On 2012/04/24 17:11, "Martin J. Dürst" wrote:

On 2012/04/24 17:02, U.Nakamura wrote:

データは例によってNetBSDのものが利用できそうです。
なのですが、transcodeってUnicodeの第0面(BMP)以外はサポートし
てましたっけ?

もちろんです :-)

もうちょっと調べました。BMP 以外は transcode の最初から全く問題ないです
が、現時点で引っかかるのは次のものです
(http://x0213.org/codetable/euc-jis-2004-std.txt から抜粋):

0xA4F7 U+304B+309A # [2000]
0xA4F8 U+304D+309A # [2000]
0xA4F9 U+304F+309A # [2000]
0xA4FA U+3051+309A # [2000]
0xA4FB U+3053+309A # [2000]

0xA5F7 U+30AB+309A # [2000]
0xA5F8 U+30AD+309A # [2000]
0xA5F9 U+30AF+309A # [2000]
0xA5FA U+30B1+309A # [2000]
0xA5FB U+30B3+309A # [2000]
0xA5FC U+30BB+309A # [2000]
0xA5FD U+30C4+309A # [2000]
0xA5FE U+30C8+309A # [2000]

0xA6F8 U+31F7+309A # [2000]

0xABC4 U+00E6+0300 # [2000]

0xABC8 U+0254+0300 # [2000]
0xABC9 U+0254+0301 # [2000]
0xABCA U+028C+0300 # [2000]
0xABCB U+028C+0301 # [2000]
0xABCC U+0259+0300 # [2000]
0xABCD U+0259+0301 # [2000]
0xABCE U+025A+0300 # [2000]
0xABCF U+025A+0301 # [2000]

0xABE5 U+02E9+02E5 # [2000]
0xABE6 U+02E5+02E9 # [2000]

ようするに、JIS X 0213 で一文字になっているが、Unicode で二文字になって
いるものです。EUC-JISX0213 から UTF-8 は問題ないですが、逆は現在引っかか
ります。windows-1258 も (逆ですが) 同じ問題がありますので、いずれはなく
さないといけないと思いましたが、今回はいいきっかけのではないかと思います。

よろしくお願いします。 Martin.

#3

Updated by usa (Usaku NAKAMURA) over 8 years ago

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

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


  • enc/euc_jp.c: added EUC-JP-2004 and its alias EUC-JISX0213.
    [ruby-dev:45571] [Feature #6349]
    Requested by Kyouhei Yanagita yanagi@shakenbu.org.

  • enc/trans/japanese_euc.trans: ditto.

  • enc/trans/JIS/JISX0213-[12]%UCS@{BMP,SIP}.src: JIS X 0213:2004 ->
    Unicode mapping table from NetBSD.

  • enc/trans/JIS/UCS@{BMP,SIP}%JISX0213-[12].src: Unicode -> JIX X
    0213:2004 mapping table from NetBSD.

  • tool/transcode-tblgen.rb: added SIP support.

  • test/ruby/test_transcode.rb: tests of above changes.

Also available in: Atom PDF