Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

AmazonとSOAP4Rと日本語で遊ぼう

現在、2つの問題点があります。いずれもAWS(Amazonのサーバー)側の障害です。報告済み。

[2003-11-28] 現時点でまだ直ってません。 CVS版では、driver.mandatorycharset = 'utf-8'としておくことで、 このAWSのバグを回避できます。

[2004-05-05] 現時点でもまだ直ってません。

検索キーワード文字列に日本語が入れられない

utf-8文字列を送ると、サーバーでエラーが起こります。

レスポンスに日本語が入ると、入り方が間違ってるせいで文字化けする

こんな感じのレスポンスになります。

    HTTP/1.1 200 OK
    Date: Sat, 08 Nov 2003 14:46:32 GMT
    Server: Stronghold/2.4.2 Apache/1.3.6 C2NetEU/2412 (Unix) mod_throttle/3.1.2 mod_fastcgi/2.2.12
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/xml

    19fe
    <?xml version="1.0" encoding="UTF-8"?>...

HTTPのContent-Typeのcharset指定がありません。HTTPに載せる場合は、XMLの encoding指定は無視され、HTTPのcharset指定に従わないといけません。 HTTPでcharsetが省略されるとus-asciiです。というわけでsoap4rは、 AWSからのレスポンスをus-asciiとして解釈します。結果的に文字化け。

AWSがContent-Type: text/xml; charset=utf-8と返すべきです。

まぁ、適当に作ってある手抜きクライアントだと、utf-8決め打ちになっていたりして、 なんとなく動いているように見えるかもしれません。RESTインタフェイスも同様。 なにが「時代はREST」なんだか。いつまでCES自動判別なんてやってんだ。