phpでちょこっとmashupしたいときにUTF-8に文字コード変えたいけど不定期なので忘れるからメモ

UTF-8が多いから。
こうやって書いとけば内部文字コード気にせず組める。

/**
 * 出力する文字コードをUTF-8に
 */
mb_internal_encoding("EUC-JP");
mb_http_output( "UTF-8" );
ob_start("mb_output_handler");

string mb_output_handler ( string $contents, int $status )

mb_output_handler() は、 ob_start() のコールバック関数です。 mb_output_handler() は、出力バッファの文字を 内部文字エンコーディングから HTTP 出力文字エンコーディングに変換します。

ob_start()で内部バッファに保存された内容が、出力されるときにmb_output_handler()を通ります。mb_output_handler()は、mb_http_outputで指定された文字コードに変換して出力します。ということで、上記のように記述しておけば、出力文字コードへの変換を気にせずにPHPのコードを書けるわけですね。


ただし、画像ファイルを送信するときは、先にheaderを送信するか、mb_http_outputでこちょこちょする必要があるみたいです。そうしないと、画像もテキストと解釈されて、文字コード変換されてしまうようです。

注意: PHP 4.3.0 以降において、 イメージのようなバイナリデータを PHP スクリプトから出力したい場合、 バイナリデータを送信する前に header() により Content-Type: ヘッダ(例:header("Content-Type: image/png"))を 送信する必要があります。Content-Type: ヘッダが送信されると出力文字 コード変換は無効となります。

ただし、header() により"Content-Type: text/*" を送信した場合には、テキストが送信されるとみなし、文字コード設定に 基づいて出力文字コード変換を行います。

なお、PHP 4.2.x あるいはそれ以前のバージョンで画像のようなバイナリデータを 出力する場合には、mb_http_output() を用いて 出力エンコーディングを "pass" に設定する必要があります。

awsのマニュアル分かりにくい。本の検索やってみたいだけなのに。

とりあえずとっかかり。有難うございます。

これ、アマゾンオフィシャルのAWSサンプルプログラム、という位置付け
みたい。PHP 5用。ECS は 2006-09-11 version がベース。

http://developer.amazonwebservices.com/connect/entry.jspa?entryID=498

awsを利用して本を検索するコードを作りながらのメモ

aws : amazon web service
ecs : e commerce service

ECSは4.0になっている

Amazon E-Commerce Service (Amazon ECS) released a major update to its web service API in October 2004. As part of the release, the name was formally changed from Amazon Web Services 3.0 to Amazon E-Commerce Service 4.0, or just Amazon ECS, as Amazon ECS is now one of the many web services offered by Amazon Web Services.
Last Update: Fri Mar 16 11:32:01 PDT 2007


次どこにリクエスト投げればいいか。

まずはRESTリクエストで問い合わせする先のAmazonWEBサービスのURL
Amazon.co.jp http://webservices.amazon.co.jp/onca/xml?
JPベータ版 http://aws-beta.amazon.co.jp/onca/xml?
Amazon.com http://webservices.amazon.com/onca/xml?

うえのリストってどうやったら分かるのか調査中。
直接の答えじゃないけど、選択して値入れていけば、awsへリクエストしてくれるサービスがあった。webinterfaceが用意されてる。
下記ツールを使ってrequest投げてみて、そのURLを見ればいいかと思った。

AWSzone.com
A playground for AWS developers. Easily create REST or SOAP requests, generate code samples, and more.


やっとリファレンス見つけた。
http://docs.amazonwebservices.com/AWSEcommerceService/2007-02-22/


で、とりあえずURL組み立てたのでメモ
http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=9999999999999&Operation=ItemLookup&SearchIndex=Books&IdType=ISBN&ItemId=9784004310013