[#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:33298] Re: requests to transcode

From: "U.Nakamura" <usa@...>
Date: 2008-01-23 04:16:46 UTC
List: ruby-dev #33298
こんにちは、なかむら(う)です。

In message "[ruby-dev:33295] Re: requests to transcode"
    on Jan.23,2008 12:59:04, <naruse@airemix.com> wrote:
| > あんまりたくさんブロックに引数を渡すようにしても書き間違える
| > だけなので、成瀬さんの2つ目の案のように2個程度に留めるか、情
| > 報をまとめたクラスのインスタンスを1個渡すか、どちらかが現実的
| > でしょうね。
| > とりあえず後者にしておけば後で仕様を追加できるので、実装する
| > 方は気が楽かもしれません。
| 
| それだと converer 一つですかねぇ。
| 必要な情報は [ruby-dev:33286] のmbsrtowcs 風 API と同じなので、後はそれ
| をどう詰め込むかと、state をどう保持しどう返すかでしょうか。

と、なると思います。


| > | エンコーディングごとにデフォルトの置換文字が決まっているので、通常はそれ
| > | を用いればいいかと。変えたい場合はブロックで。ハッシュなりで渡すという方
| > | 法もあるでしょうね。
| > 
| > 「決まってる」というのは、何で決まってるんでしょう?
| > # 不勉強ですみません
| 
| あ、ウソです。
| ICU やそれを引いてる Encode は ucm ファイル中の <subchar> で、
| Citrus の場合はエンコーディング定義ファイルの INVALID で、
| 「実装が決めてる」ケースが多い、ですね。
| っと、思ったら GNU libiconv はオプションで与えさせていました。

なるほど。
nkfもオプションで与えさせていますよね。


| というか、これってよくよく考えると、
| * エラー
| * 無視
| * 特定の置換文字
| * 対応する文字列 (U+XXXXや\xXXや\uXXXXなど)
| になるわけで、無視を空文字、対応する文字列をフォーマット文字列と読み替え
| れば、エラー以外は string なわけで、これって定数じゃなくて文字列でいい気
| がしてきました。
| 
| つまり、以下の通り。
| * エラー: nil
| * 無視: ""
| * 置換文字: "?" "〓" "\uFFFD" 等
| * 対応する文字列 "U+%4X" "\\x%2X" "\\u{%X}" 等

私もそのように思います。
最後のが微妙なところですが、こういう複雑なのはブロック与えた
場合に任せる、ということでいいんじゃないかとも思います。


| っと、思ったのですが、バイトとして不正な場合と変換できない文字の場合で話
| が違うような気がちらり。もうちょっと整理が必要かも。mb2mb って暗黙に
| mb.valid? -> mb2wc -> wc2mb してるので、どの段階で死んだかによって話が変
| わるんですよね。

バイトとして不正な場合(つまり入力元文字列が不正な並びの場合)
は、それ以降も信用できないので、指定にかかわらずエラーにする
しかないと思います。
ブロックを与えた場合は、「それ以降」をプログラマの知識でなん
とかできるかもしれないので、その場合はまあ別途。


| > 変換失敗時対応方法という引数があるといいというのは、String#encode
| > 自体がそういう方向になるはずなので、というだけです。
| > 
| > といわわけで、戻り値はVALUE(String)でいいですし、失敗はnilで
| > 教えてくれればもう十分で、呼んだ側は失敗してたら後は死ぬなり
| > 何なりすればいいやと思っていたので失敗したところから再開とか
| > は全然考えていませんでした。
| 
| たぶん、「何なりする」ために再開が必要じゃないかなーと思います、たぶん。

あ、ここでいう「何なり」は、気にせず文字列捨てるとかそういう
レベルの処理を想定していました。


| > 成瀬さんの案は、String#encodeのブロック引数つき版に対応したAPI
| > ということになるかと思うのですが、これはまあこれとして、私が
| > 欲しかったのはもっと手軽に呼べるシンプルな奴です、はい。
| 
| ブロック引数付き版を 純粋な C のレイヤーでやるとこうなってしまうという例
| ですかね。失敗したら無視かそのまま死んでしまうなら大幅にシンプルになるで
| しょう。
| 
| ただ、失敗を救おうとすると再開や中断場所の情報が必要になって、再開可能に
| すると状態が必要になるというように情報が増えていくので、とりまわしは多少
| 楽になっても、本質的に必要な情報はあまり変わらないかなぁと気もします。

はい。
失敗を救うためには詳細な情報が必要で、そういうのが欲しい人は
もちろんいるでしょうから、成瀬さん案レベルのAPIもおそらく必要
なんだろうと思うわけですが、私が欲しいのはもっとテキトーな奴
だった、ということです。


それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>



In This Thread

Prev Next