[#43186] [Ruby 1.9-Bug#4388][Open] open-uriで環境変数http_proxyを使うときに認証付きのProxyが使えません — あつし よしだ <redmine@...>

Bug #4388: open-uriで環境変数http_proxyを使うときに認証付きのProxyが使えません

11 messages 2011/02/10
[#43192] [Ruby 1.9-Bug#4388] open-uriで環境変数http_proxyを使うときに認証付きのProxyが使えません — あつし よしだ <redmine@...> 2011/02/11

チケット #4388 が更新されました。 (by あつし よしだ)

[#43193] Re: [Ruby 1.9-Bug#4388] open-uriで環境変数http_proxyを使うときに認証付きのProxyが使えません — Tanaka Akira <akr@...> 2011/02/11

2011年2月11日12:59 あつし よしだ <redmine@ruby-lang.org>:

[#43203] [Ruby 1.9-Bug#4397][Open] test-mkmf fails due to compilation errors — Shyouhei Urabe <redmine@...>

Bug #4397: test-mkmf fails due to compilation errors

10 messages 2011/02/14

[#43272] [Ruby 1.9 - Bug #4443] [Open] odd evaluation order in a multiple assignment — Yusuke Endoh <mame@...>

13 messages 2011/02/24

[#43274] [Ruby 1.9 - Bug #4445] [Open] ext/openssl の verify_callback が rb_protect で保護されていない — Ippei Obayashi <ohai@...>

13 messages 2011/02/24

[#43276] iseq_compile_each()でのマジックナンバ — きたざわけんいち <peisunstar@...>

きたざわです。

15 messages 2011/02/27
[#43303] Re: iseq_compile_each()でのマジックナンバ — nagachika <nagachika00@...> 2011/03/04

近永と申します。

[#43304] Re: iseq_compile_each()でのマジックナンバ — Yusuke ENDOH <mame@...> 2011/03/04

遠藤です。

[ruby-dev:43248] Re: [Ruby 1.9-Bug#3990][Closed] tests of rexml/rss reports many errors and failures without iconv

From: "NARUSE, Yui" <naruse@...>
Date: 2011-02-22 14:32:17 UTC
List: ruby-dev #43248
成瀬です。

(2011/02/22 22:12), Kouhei Sutou wrote:
> In <AANLkTimCVoPzMzKjnj8WPOEU-aBx=Yxkc5AuQphnrTsr@mail.gmail.com>
>   "[ruby-dev:43246] Re: [Ruby 1.9-Bug#3990][Closed] tests of rexml/rss reports many errors and failures without iconv" on Tue, 22 Feb 2011 18:13:38 +0900,
>   "NARUSE, Yui" <naruse@airemix.jp> wrote:
> 
>>>  XMLDecl#encoding は String であるべき
>>>
>>> というよりは、
>>>
>>>  XML宣言に記述するエンコーディング(=情報交換用符号ですよ
>>>  ね?)と内部処理に使うエンコーディング(=内部処理用符号
>>>  =transcode ですよね?)を別々に管理できるようにするべき
>>>
>>> ですよね?
>>
>> 「別々に管理できる」に加えて、どのような名を名乗るかまで必要です。
>> で、Encodingを用いるとEncoding#nameを実際に記述するエンコーディング名に
>> 用いると思いますが、この場合名前の正規化が走ってしまうのでまずいのです。
>> 具体例としては 「csWindows31J」を用いたい時とか。
> 
> むぅ。「csWindows31J」ですか。
> 「csWindows31J」を使いたいときというのは、ようはMicrosoft向
> けにXMLを出力したいときですよね。であれば、文字列化するとき
> に:for_microsoft => trueみたいなオプションを指定するような
> APIの方がよいと考えています。理由はそっちの方が意図を表現し
> ているからです。

出力のエンコーディングは Windows-31J だけど名乗りは Shift_JIS にさせたい
という例もありえますね。また、さらに Solaris 用に PCK と名乗らせたいとか。
(PCK は Windows-31J か Shift_JIS の alias として追加予定)

別のユースケースだと、ケータイ絵文字を含んだUTF-8なXHTMLをREXMLで処理して、
UTF8-DoCoMoとして出力しつつ、そいつにUTF-8と名乗らせたいとか。

一般論としては XML 宣言の encoding 属性は受信側のXMLパーサの
文字コード変換器の引数なので、Ruby が変換は可能だが名前を知らない場合や、
Ruby では alias になっちゃってる例が考えられます。

> そもそも、私がXML宣言のエンコーディングにEncodingを使いたいの
> はtypoとかの間違いをなるべく起こしづらかったり、気付きやすい
> APIにしたいからです。REXMLはRubyのtranscode(ですよね?)をベー
> スにしているため、transcodeが対応しているエンコーディング以外
> は扱えないので、XML宣言をEncodingで表現すれば、サポート外のも
> のを検出しやすくなると思っています。

そもそも、Encoding は鬼車のモジュールに対応するオブジェクトで、
transcode の変換器に対する引数とは別の話ですよ。
例えば変換時に Apple 版 NFD を行うことを意味する UTF8-MAC なんかは、
現状 encoding としても別になってますが、これは失敗だった気がするので
UTF-8 に統合しようかとも思っていたり。

また、encoding 宣言は送信側である Ruby/REXML ではなく、
受信側が解釈するものなので、こちらがサポートしているかどうかは本質的には
問題ではありませんね。Encoding オブジェクトを受け付けてもいいとは思いますが。

>>> それとは別に「内部処理用符号」を持つようにしようと思っていま
>>> す。名前はXMLDecl#transcode, XMLDecl#transcode=がいいんじゃな
>>> いかと思っています。これにもEncodingを使うつもりです。
>>
>> 内部処理用符号を持つことには賛成します。
>>
>> けれども「transcode」はCRubyのエンコーディング変換エンジンの実装名で、
>> Rubyレイヤにはその名は出していないはずです。
>> よって、ここで「transcode」というメソッド名を用いるのは不適だと考えます。
> 
> なんと。一般的な用語なのかと思っていました。
> であれば、別にアクセサを提供しなくてもよいかなぁという気になっ
> てきました。そんなに頻繁に使うような気もしないので、属性や内
> 容をとってきてencodingしてもらうのでも困らなそう。

うむむ?ここの「内部処理用符号」って現在もっぱら UTF-8 を使っている、
REXML 内部でXML断片に用いる encoding とは別でしたか?

念のためまとめ直すと、登場人物は以下の三者ですね。
* REXML 内部エンコーディング
  * REXML 内部での処理で用いるエンコーディング
  * 現在もっぱら UTF-8
  * Encoding オブジェクト可
* REXML 出力エンコーディング
  * 文字列化して出力した結果の encoding
  * transcode が「内部to出力」の変換を扱える必要
  * Encoding オブジェクト可
* 出力結果のXML宣言のencoding属性の値
  * 出力結果を解釈するどこかのXMLパーサが見る値
  * Ruby が理解できる必要はない
  * String が望ましい

-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread