2003 年 7 月 22 日 (火) 自宅

さて、Amazon Web サービスの話題、今日も続きます。 昨日は XML/HTTP でキーワード検索はできたものの、 日本語をキーワードに指定すると、どうもそれが文字化けしているようで、 正しく検索結果が表示されないという状態…。あれ〜?

てなわけで、再度 AWS Discussion Board を読んでいると、 あやや、こんなことが書いてあるよ。

A few quick notes about sending Japanese characters to us in search requests:

All Parameters must be url encoded version of UTF-8 characters.

You need to add the following parameter as a short term fix if you are entering url encoded utf-8 characters:

__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A

Here is a valid query:

http://xml.amazon.com/onca/xml3?t=[ASSOC_ID]&dev-t=[DEV_TOKEN]&f=xml&type=heavy&
KeywordSearch=%E3%83%A2%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0&locale=jp&mode=books-jp&
__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A

Jeff at Amazon.com

…をいをい。まあ、始ったばかりのサービスでバグが多いのは致し方ないか。 って、「__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A」って何さ、 と思って URI unescape してみると、UTF-8 で「__mk_ja_JP=カタカナ」か…。 まあ、クイックハックなんだろうけど…「カタカナ」って何だ? まあいいか。

てなわけで、昨日のリソース指定の部分のコードを書き直してみた。 念のためだけど、スクリプト自体を UTF-8 でセーブしていないと、 uri_escape('カタカナ') が正しく機能しません。

ということで、今度はどうかな? 「my $keyword = "広末涼子";」(をいをい)にして、検索してみました。 結果はこんな感じ。実際は何か怪しげな文字が入っているけど (「Happy20thBirthday広末涼子写真集〓ヒロスエ、ハタチ」の「〓」の部分に、 XEmacs-Mule ではうまく処理しきれていない文字が入っていた。 直接Amazon のページに行ってみると、 ただの長い横棒だ。 AWS の問題か XEmacs-Mule の問題か後で調査の必要があると思う)、 おおむねうまく行っている。

<?xml version="1.0" encoding="UTF-8"?>
<ProductInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xsi:noNamespaceSchemaLocation="http://xml.amazon.com/schemas3/dev-lite.xsd">
      <Request>
<Args>
   <Arg value="jp" name="locale">
   </Arg>
   <Arg value="1" name="page">
   </Arg>
   <Arg value="広末涼子" name="KeywordSearch">
   </Arg>
   <Arg value="MYDEVT" name="dev-t">
   </Arg>
   <Arg value="MYTAG" name="t">
   </Arg>
   <Arg value="xml" name="f">
   </Arg>
   <Arg value="books-jp" name="mode">
   </Arg>
   <Arg value="lite" name="type">
   </Arg>
</Args>
      </Request>
   <TotalResults>20</TotalResults>
   <TotalPages>2</TotalPages>
   <Details url="http://www.amazon.co.jp/exec/obidos/ASIN/4757714750/MYTAG?dev-t=MYDEVT">
      <Asin>4757714750</Asin>
      <ProductName>広末涼子 New York RH Avenue 2003</ProductName>
      <Catalog>Book</Catalog>
      <Authors>
         <Author>丸谷 嘉長</Author>
      </Authors>
      <Manufacturer>エンターブレイン</Manufacturer>
      <ImageUrlSmall>http://images-jp.amazon.com/images/P/4757714750.09.THUMBZZZ.jpg</ImageUrlSmall>
      <ImageUrlMedium>http://images-jp.amazon.com/images/P/4757714750.09.MZZZZZZZ.jpg</ImageUrlMedium>
      <ImageUrlLarge>http://images-jp.amazon.com/images/P/4757714750.09.LZZZZZZZ.jpg</ImageUrlLarge>
      <ListPrice>¥ 1,900</ListPrice>
      <OurPrice>¥ 1,900</OurPrice>
   </Details>
   <Details url="http://www.amazon.co.jp/exec/obidos/ASIN/4838782829/MYTAG?dev-t=MYDEVT">
      <Asin>4838782829</Asin>
      <ProductName>Happy20thBirthday広末涼子写真集〓ヒロスエ、ハタチ</ProductName>
      <Catalog>Book</Catalog>
      <Authors>
         <Author>藤代 冥砂</Author>
      </Authors>
      <Manufacturer>マガジンハウス</Manufacturer>
      <ImageUrlSmall>http://images-jp.amazon.com/images/P/4838782829.09.THUMBZZZ.jpg</ImageUrlSmall>
      <ImageUrlMedium>http://images-jp.amazon.com/images/P/4838782829.09.MZZZZZZZ.jpg</ImageUrlMedium>
      <ImageUrlLarge>http://images-jp.amazon.com/images/P/4838782829.09.LZZZZZZZ.jpg</ImageUrlLarge>
      <ListPrice>¥ 648</ListPrice>
      <OurPrice>¥ 648</OurPrice>
   </Details>
   ...(略)...
</ProductInfo>

Expat の xmlwf での well-formed XML チェックはここでも問題なし。 ふう、何か様子が見えてきた感じだぞ。面白いな。


この話題、戻る← 2003/07/21 『AWS: Perl による XML/HTTP 検索』

この話題、続く→ 2003/07/22 『AWS: ソート順の謎』


このサイトへのリンクには何ら許可は必要ありません。 ただし、無断で写真をダウンロードして他の場所に掲載したり、 画像加工の素材として利用するなど、再配布に当たる行為はしないようにしてください。 また、このサイトへのリンクであることを明示すること無しに <img src="..."> などで他のページの内部に画像ファイルを取り込むことも、 ご遠慮下さい。