[#32910] NKF,Kconv — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#32913] openの"b"とencoding — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#32922] SEGV by regexp match in while loop — Tanaka Akira <akr@...>
Debian GNU/Linux (sarge) の gcc-3.4 を使ってビルドした ruby
[#32935] queue and timeout — Tanaka Akira <akr@...>
timeout で Queue#pop に時間制限をつけた時、タイムアウト時に
まつもと ゆきひろです
[#32940] ripper cannot build on win32 — yukimi_sake <yukimi_sake@...>
雪見酒です。
[#32945] Shift_JIS variants and UTF-16 support — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
中村さん、こんにちは。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
成瀬です。
こんにちは、なかむら(う)です。
成瀬です。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#32946] replica と alias の違い(encoding) — KIMURA Koichi <kimura.koichi@...>
木村です。
[#32987] error with open-uri (instance_eval?) — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#32988] Re: [ruby-cvs:22194] Ruby:r14957 (trunk): * encoding.c (rb_enc_init): UTF-{16,32}{BE,LE} are not builtin. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#32992] ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
At 18:13 08/01/09, Yukihiro Matsumoto wrote:
成瀬です。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#32996] binmode and ASCII-8BIT — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#33069] Re: [ruby-cvs:22244] Ruby:r15007 (trunk): * enc/make_encdb.rb: added. search enc/*.c and make encoding database. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
まつもと ゆきひろです
[#33076] Encoding.compatible? and dummy encodings — sheepman <sheepman@...>
こんにちは sheepman です。
成瀬です。
まつもと ゆきひろです
[#33078] NEW REPLICA ENCODINGS AND ENCODING ALIASES — "NARUSE, Yui" <naruse@...>
成瀬です。
[#33101] String#valid_encoding? shoud be strict? — Masayoshi Takahashi <maki@...>
高橋征義です。1.9のエンコーディングとString#valid_encoding?について。
[#33139] Bignum#* might invoke GC parallelly? — "Yusuke ENDOH" <mame@...>
遠藤と申します。
[#33156] default script encoding and -K option — sheepman <sheepman@...>
こんばんは sheepman です。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#33164] default encoding for Marshal.load — "Shugo Maeda" <shugo@...>
前田です。
まつもと ゆきひろです
[#33185] コンパイルの問題 (r15218) — Martin Duerst <duerst@...>
r15128 当たりで (実はもう少し前から) コンパイルできなくなりました。
[#33218] Re: Ruby1.9String バイト列へのインデックス アクセス — "Hisanori Kiryu" <hkiryu@...>
> ちなみに、byte のではなく bytes の方が妥当だと思います。
[#33224] printf "%0x" — Tanaka Akira <akr@...>
printf の %0x に負の整数を与えると、値によって .. がついたり
[#33226] [PATCH] warnings of enc/trans/utf_16_32.c — Nobuyoshi Nakada <nobu@...>
なかだです。
[#33239] Re: [ruby-cvs:22386] Ruby:r15149 (trunk): * string.c (rb_str_each_char): move forward. — Tanaka Akira <akr@...>
In article <200801210259.m0L2x3CW017171@ci.ruby-lang.org>,
なかだです。
In article <20080121065650.55F60E0662@mail.bc9.jp>,
なかだです。
まつもと ゆきひろです
[#33247] requests to transcode — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#33303] Time#strftimeのエンコーディング — rubikitch@...
るびきちです。
まつもと ゆきひろです
なかだです。
西山和広です。
[#33368] summary of script encoding — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
永井@知能.九工大です.
[#33387] HashからStructを作る — rubikitch@...
るびきちです。
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
[#33399] regexp match /.../n against to UTF-8 string — Tanaka Akira <akr@...>
以下のように、つけてもいない正規表現の n オプションに関して
[#33400] /#{}/e.encoding — Tanaka Akira <akr@...>
以下のように /#{}/e の encoding が US-ASCII になります。
[#33403] wrapped String#gsub — "Park Ji-In" <tisphie@...>
こんにちは、朴 芝印です。
[#33417] コンパイルの問題 — Martin Duerst <duerst@...>
現在 (r15264 で) コンパイル使用とすると、エラーになります:
At 16:28 08/01/27, you wrote:
[#33433] Win32OLE: set encoding to OLE string — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
成瀬です。
助田です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#33452] enc/euc_kr.c (euckr_mbc_enc_len) euc_kr.c is also used by CP942 — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
成瀬です。
[#33461] Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...>
=1B$B?9ED$H?=3D$7$^$9!#=1B(B
なかだです。
森田です。
なかだです。
森田です。
天野竜太郎と申します。
森田です。
天野です。
森田です。
天野です。
森田です。
天野です。
森田です。
天野です。
[#33488] 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
In article <47A00E86.4010701@airemix.com>,
成瀬です。
In article <47A03C9D.2090008@airemix.com>,
In article <87hcgvu1ng.fsf@fsij.org>,
[#33521] nkf の CP932 — Martin Duerst <duerst@...>
成瀬さん、皆さん、こんにちは。
[#33548] block parameter of String#gsub — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
[ruby-dev:33402] Re: Binary String
成瀬です。
Hidetoshi NAGAI wrote:
> # $KCODE を使うように,必要なメソッドをすべて wrap するというのは
> # あまりにも労力が割に合わないので,当然考えてはおられませんよね?
そこまでしなくても、-Ke を指定すれば 1.9 のメソッドは対応しますから。
>>>> あとは、ライブラリにブロックを渡すなりしてライブラリ中で処理するか、オブ
>>>> ジェクトを受け取ってから設定するかすれば。
>>> え〜っと,それって「ライブラリ側に手を入れる」ってことですよね.
>>> 上記の「ライブラリ側に手を入れられないことが前提ならば 」とは
>>> 矛盾してしまいませんか.(^_^;
>> いえ、[ruby-dev:33269] の例の念頭に置いているので手を入れていません。
>
> ライブラリが元々ブロックを受け取ることができる仕様になってなければ
> どうしようもないように思えるのですが...
> ライブラリ「内」でそうした対応を行わせるためには,
> そのライブラリに手を入れるしかないですよね.
> 私がまた何か勘違いしているのでしょうか?
ブロックを受け取るメソッドの話です。
あとそういえば、Ruby は Open Class なので、外からライブラリのメソッドを
書き換えてしまうという手もあったりはしますね。
> ごめんなさい.nkf は単なる例なのでさして重要ではありません.
> 1.8 由来のライブラリ内部で nkf などの別の文字列処理ライブラリなり
> 組み込みメソッドなりを呼び出す際,
> その 1.8 由来のライブラリは encoding なんてものを知りませんから
> 何らかの encoding を仮定 or 想定して文字列を生成し,処理を依頼します.
> このとき encoding が指定されてはいないし,
> magic comment なんかも入っていませんから,
> ASCII-8BIT で文字列が生成される可能性が高いのですよね?
nkf の例で何を指そうとしているのかがよくわからないのですが、
エンコーディングを参照しながら何かするライブラリという趣旨ですか?
nkf では特殊すぎて例として不適切な気がします。
多くの場合は US-ASCII か ASCII-8BIT になるでしょうね。
> 1.8 版で 1.8 的に動作するもの (encoding を利用するような
> (中略)
> ライブラリの想定 encoding に合わせて
> 戻ってきた文字列に対して force_encoding すれば
> 確かになんとか対処できるでしょう.
-Kn をつけているケースではそうだと思います。-Ke 等をつけていると少々話は
変わるかもしれません。
> 次に 1.8 版で 1.9 のメソッドを利用するものについてです.
> このケースでも nkf のようなものは 1.9 を想定して書かれたわけでは
> ないため,magic comment は存在しません.
> このとき,1.8 由来のライブラリで生成されて
> ASCII-8BIT とされた文字列が nkf のようなものに
> 渡される場合を考えます.
> メソッドが受け取る引数に依存する点もありますが,結果は
> (1) 例外発生
> (2) 適切に処理されて適切な encoding が与えられたものが返る
> (3) たまたま適切に処理はされたが encoding は ASCII-8BIT で返る
> (ASCII-8BIT はライブラリが想定している encoding ではない)
> (4) 例外は生じないが,ASCII-8BIT のまま (不適切に?) 処理され,
> 何らかの encoding (ASCII-8BIT?) で返る
> というところでしょうか.
> 1.8 由来のライブラリは,適切に処理できた場合の encoding を
> 知っているでしょうから,その想定に従った処理を行うはずです.
> ただし「1.8 由来」ですから,戻値に force_encoding などは
> するはずもありません.
> 1.8 由来のライブラリで生成された文字列は ASCII-8BIT ですから,
> 上記 (2) の場合,処理によっては encoding 不整合でこけます.
> こけなければ適切な encoding を持った結果を返せそうです.
> 上記 (3) の場合は,処理によっては不適切な結果となるかもしれません.
> 戻値の encoding は多分 ASCII-8BIT となるでしょう.
> 上記 (4) の場合は,何を返すことになるかわかりません.(^_^;
この場合、-K が指定されているかに大きく依存します。-Kn ならば多くの生成
された文字列は ASCI-8BIT になるため、ASCII-8BIT で全体を統一できるかがカ
ギになります。この際、バイト単位でなく文字単位で処理を行うコードが混ざっ
ていると難しくなります。
一方、-Ke が指定されている場合は全体を EUC-JP で統一できるかがカギとなり
ます。この際、バイト単位で処理を行うコードが混ざっているとその周辺でこけ
やすくなります。([ruby-list:44536] の例ですね)
> 最後に 1.9 版の nkf のようなものを利用するケースです.
> 1.8 由来のライブラリで生成された ASCII-8BIT 文字列が渡される場合,
> 1.9 版の nkf のようなものはその encoding を信じて処理を行うはずです.
> ですが,1.8 由来のライブラリが想定している encoding は
> ASCII-8BIT ではありませんから,結果は,
> (1) 例外発生
> (2) 例外は生じないが,ASCII-8BIT のまま (不適切に?) 処理され,
> 何らかの encoding (ASCII-8BIT?) で返る
> というところかもしれません.
> 「たまたまうまく」ということが絶対にないとは言い切れませんが.
nkf のようなもので何を指しているのかがわかりませんが、
1.8 時代から存在するものであれば、明示的にエンコーディングを指定させてい
たはずであり、1.8 なライブラリはエンコーディングを指定して呼び出している
はずです。
で、この場合、-Kn をしているケースでは処理の内容によっては救うことは極め
て困難に思われます。
"あいうえお".force_encoding("ascii-8bit").
gsub("あいう"){|m|m[0].force_encoding("euc-jp")}
というような形に帰着するケースでは難しそうです。
-Ke 等の場合は上述の EUC-JP で統一可能かという話ですね。こちらの場合は、
"あいう" + 0xA4.chr + 0xA8.chr とかがあると難しいかな。
> 見落としがありそうな気もしていますが,
> UNDEFINED-8BIT + default_undefind なら
> 上記のすべてをかなりの確率で救済できそうな気がします.
これで救済できるのは、文字単位での処理か、バイト単位での処理か、どちらか
に統一されているケースに限ると思います。そのようなケースでは、エンコー
ディング未指定で生成された文字列を -K で指定されたエンコーディングにして
しまった方がスマートでしょう。
--
NARUSE, Yui <naruse@airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA