From: "NARUSE, Yui" Date: 2008-01-21T19:42:52+09:00 Subject: [ruby-dev:33253] Re: requests to transcode 成瀬です。 Martin Duerst wrote: >> (1) Windows-31Jサポート >> 確か以前にMartin先生が対応予定とおっしゃっておられたと思 >> います。 >> 別に急かすわけじゃないですが、一応確認ということで。 > > こちらではもう既に一応やったんですが、その時に今の Shift_JIS > と EUC-JP のところにいくつかの疑問がでてきて、これをきちんと > 洗い出して相談しようと思っています。 Shift_JIS と EUC-JP の疑問ってマッピングの話ですか?それでしたら後ででも 調整できますし、とりあえずWindows-31J を使いたいです。 Shift_JIS と EUC-JP は GNU libiconv あたりにそろえるのが無難なのですか ねぇ・・・、改めてマッピング見直しておきます。 >> (2) 変換できない文字の扱い >> 現状は変換できない文字があると例外が発生しますが、そうい >> う文字を「?」や「〓」などに置き換えて処理を続行したい場面 >> もそれなりにあると思います。 >> [ruby-core:15036]あたりからの話がそうだと思いますが、これ >> はどうなりそうでしょうか? > > そうですね。実装はわりと簡単ですが、API を決めないと行けないです。 > 最終的にブロックもうまく使いたいですが、これはもう少し先だと思います。 > 現在考えているのは例えば File.fnmatch みたいなフラグを使うことです。 > > 例えば > > s.encode('EUC-JP', String::ENCODE_SUBSTITUTE_TARGET_DEFAULT) > s.encode('Shift_JIS', 'UTF-8', String::DROP_BROKEN_BYTES) Perl/Encode も定数でオプションを指定する方式でしたね。定数は String の中 なのかなぁ・・・、少し Encoding と迷うところかもしれません。将来的にブ ロックも用意する予定ならば、置換・無視・エラーがあれば当面は何とかなりそ うな気もします。 ちなみにご存知かもしれませんが、Perl/Encode だとこんな感じのようです。 http://search.cpan.org/dist/Encode/Encode.pm#Handling_Malformed_Data -- NARUSE, Yui DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA