[#32945] Shift_JIS variants and UTF-16 support — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

22 messages 2008/01/07
[#32953] Re: Shift_JIS variants and UTF-16 support — Martin Duerst <duerst@...> 2008/01/07

中村さん、こんにちは。

[#32955] Re: Shift_JIS variants and UTF-16 support — Yukihiro Matsumoto <matz@...> 2008/01/07

まつもと ゆきひろです

[#32959] Re: Shift_JIS variants and UTF-16 support — "NARUSE, Yui" <naruse@...> 2008/01/07

成瀬です。

[#32960] Re: Shift_JIS variants and UTF-16 support — Yukihiro Matsumoto <matz@...> 2008/01/07

まつもと ゆきひろです

[#32992] ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...>

成瀬です。

18 messages 2008/01/08
[#32994] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Yukihiro Matsumoto <matz@...> 2008/01/09

まつもと ゆきひろです

[#32995] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Martin Duerst <duerst@...> 2008/01/09

At 18:13 08/01/09, Yukihiro Matsumoto wrote:

[#33011] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...> 2008/01/11

成瀬です。

[#33012] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Yukihiro Matsumoto <matz@...> 2008/01/11

まつもと ゆきひろです

[#33014] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...> 2008/01/11

成瀬です。

[#33015] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Yukihiro Matsumoto <matz@...> 2008/01/11

まつもと ゆきひろです

[#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>,

11 messages 2008/01/21
[#33240] Re: [ruby-cvs:22386] Ruby:r15149 (trunk): * string.c (rb_str_each_char): move forward. — Nobuyoshi Nakada <nobu@...> 2008/01/21

なかだです。

[#33303] Time#strftimeのエンコーディング — rubikitch@...

るびきちです。

13 messages 2008/01/23
[#33305] Re: Time#strftimeのエンコーディング — Yukihiro Matsumoto <matz@...> 2008/01/23

まつもと ゆきひろです

[#33368] summary of script encoding — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

22 messages 2008/01/25
[#33375] Re: summary of script encoding — Yukihiro Matsumoto <matz@...> 2008/01/25

まつもと ゆきひろです

[#33376] Re: summary of script encoding — "U.Nakamura" <usa@...> 2008/01/25

こんにちは、なかむら(う)です。

[#33387] HashからStructを作る — rubikitch@...

るびきちです。

19 messages 2008/01/25
[#33455] Re: HashからStructを作る — Yukihiro Matsumoto <matz@...> 2008/01/28

まつもと ゆきひろです

[#33505] Re: HashからStructを作る — rubikitch@... 2008/01/29

From: Yukihiro Matsumoto <matz@ruby-lang.org>

[#33507] Re: HashからStructを作る — Yukihiro Matsumoto <matz@...> 2008/01/29

まつもと ゆきひろです

[#33508] Re: HashからStructを作る — rubikitch@... 2008/01/29

From: Yukihiro Matsumoto <matz@ruby-lang.org>

[#33433] Win32OLE: set encoding to OLE string — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

16 messages 2008/01/28

[#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

19 messages 2008/01/28
[#33473] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Nobuyoshi Nakada <nobu@...> 2008/01/28

なかだです。

[#33503] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/29

森田です。

[#33514] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Nobuyoshi Nakada <nobu@...> 2008/01/29

なかだです。

[#33518] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/30

森田です。

[#33545] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Ryutaro Amano <wn9r-amn@...> 2008/01/31

天野竜太郎と申します。

[#33546] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/31

森田です。

[#33547] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Ryutaro Amano <wn9r-amn@...> 2008/01/31

天野です。

[#33551] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/31

森田です。

[#33488] 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

20 messages 2008/01/29
[#33491] Re: 現在の script encoding の値を得る方法は? — Yukihiro Matsumoto <matz@...> 2008/01/29

まつもと ゆきひろです

[#33500] Re: 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...> 2008/01/29

永井@知能.九工大です.

[#33501] Re: 現在の script encoding の値を得る方法は? — "NARUSE, Yui" <naruse@...> 2008/01/29

成瀬です。

[#33515] Re: 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...> 2008/01/30

永井@知能.九工大です.

[#33516] Re: 現在の script encoding の値を得る方法は? — "NARUSE, Yui" <naruse@...> 2008/01/30

成瀬です。

[#33519] Re: 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...> 2008/01/30

永井@知能.九工大です.

[#33522] Re: 現在の script encoding の値を得る方法は? — "NARUSE, Yui" <naruse@...> 2008/01/30

成瀬です。

[ruby-dev:33285] Re: Binary String

From: "NARUSE, Yui" <naruse@...>
Date: 2008-01-22 18:52:12 UTC
List: ruby-dev #33285
成瀬です。

Hidetoshi NAGAI wrote:
> にもかかわらず UNDEFINED-8BIT なんて話を出したりしているのは,
> さまざまな外部ライブラリをブラックボックスとして用いる場合を
> 考えてのことです.
> つまり,外部ライブラリのメソッドの戻値の encoding を
> どこまで信じたらいいかという話でもあります.
> 
> ASCII-8BIT で返ってきたとして,
> これは必然で ASCII-8BIT になっているのか,
> それとも未定義のためやむをえず ASCII-8BIT になっているのか...
> Ruby 1.9 用の外部ライブラリならいいのですが,
> 本来は Ruby 1.8 用である外部ライブラリを援用しているケースでは
> 少々やっかいです.

ごもっともな指摘だと思います。

> 事実 Marshal のケースでは,何とか対策するために
> ライブラリに手を入れざるを得なかったわけですよね?

後述しますが、現段階では手を入れてませんね。

> もちろんここで Ruby/Tk の場合と同様に
> 「Ruby 1.8 用のライブラリを使う方が悪い」とか,
> 「Ruby 1.8 用のライブラリで文字列を扱うものはほとんど諦めてください」
> とすることもできます.
> それも確かに一つの選択肢でしょう.
> 開発が継続しているライブラリであれば,いつかは保証できませんが,
> 多分,Ruby 1.9 対応は行われるだろうと期待することは可能です.
> あるいは,自分でそのライブラリの解析ができる人なら
> 自分でパッチを作成して利用可能にすることができるかもしれません.
> 
> ですが,そうでない人の場合はどうでしょう?
> 開発が停止してブラックボックスとなっているライブラリが
> どうしても必要な人や,1.9 対応をどうしても待てない人は?
> すべてのケースで「諦めて 1.8 を使い続けてね」と答えるのを
> 是とするのかどうかです.

一義的にはライブラリ側を 1.9 対応させるのがベストなわけですが、ライブラ
リ側に手を入れられないことが前提ならば [ruby-dev:33269] のように 途中で
force_encoding したり、オブジェクトを受け取ってから force_encoding すれ
ばいいでしょう。1.8 非対応なのはわかっているのだから、使う側が
force_encoding すればいいよね、と。

> UNDEFINED-8BIT はこうした場合の救済策になるのではないかと考えて
> 話に出したものです.
> 直接には手が届かないライブラリ内部の処理に
> デフォルトの encoding の情報を与えることができます.
> その結果,encoding が明記されていない文字列を
> 期待する encoding で適切に処理してもらえるように
> できる可能性が高まります.

若干ここの仮定がおかしいように思います。その「手の届かないライブラリ内
部」はすべて encoding 非対応なので、encoding が設定されている必要はない
でしょう。encoding が必要になるのは手が届くところまで来てからですから、
そこで設定してあればよのです。

あとは、ライブラリにブロックを渡すなりしてライブラリ中で処理するか、オブ
ジェクトを受け取ってから設定するかすれば。

> また,UNDEFINED-8BIT で返されたならば,
> 他の encoding の場合と違って Ruby 1.9 としての処理の結果の
> 必然として得られたものではないということが分かります.
> それが分かれば好きなように料理することができます.

encoding 非対応のライブラリが返してきた時点で必然の結果得られたものでは
ないことが分かります。

> UNDEFINED-8BIT のようなものが存在しなければ,
> ブラックボックスの戻値はすべて同じ encoding であると
> 推定するしかありません.

以上の通りなので、この仮定が否定されます。

> # 今回も「何だか良く分からないことを感情的に喋っている」と
> # 思われて終わりかなぁ...(^_^;

いや、言いたいことはわかるのですよ。また、おそらくみんなそういったエン
コーディングが必要な場合が存在する可能性は否定していないと思います。

ただ、本当に必要かというと、今のところ必要に見える場面はどれも別のよりい
い解決策が存在しているようです。なので、実は必要ないのではないかと。

# 本当に必要かの検討の十分性について感情という修飾がついたのかと

たぶん Python だと undefined encoding の提案はすんなり通る・・・というか
実際存在するんですが、とりあえず処理しやすい encoding をつけておいて、わ
かった時にちゃんとした文字用 encoding をつけようって方が Ruby 的かなと感
じます。

# undefined:
# “Raise an exception for all conversions.
#   Can be used as the system encoding if no automatic coercion
#   between byte and Unicode strings is desired.”
# http://docs.python.org/lib/standard-encodings.html

-- 
NARUSE, Yui  <naruse@airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA

In This Thread