↑↑これは Chrome で Big5 として表示したものです。上が変換前、下が変換後です。
昨日、Google Weather API で遊んでいたところ、言語を設定するパラメータがあることに気づきました。そのパラメータを設定しないと、API は英語で、UTF-8 エンコーディングの値を返します。しかし zh-TW を設定すると、中国語の値が返ってきますが、そのエンコーディングは Big5 です。そのため、この API を使うときは、戻り値を UTF-8 に変換し直してからでないと使えませんでした。今では Big5 のウェブサイトもかなり少なくなっています。そこで昨日、エンコーディングを変換してくれる mb_convert_encoding 関数を探しました~
もし私と似たような状況で、ある API の戻り値のエンコーディングが希望と違う場合は、mb_convert_encoding 関数を使ってエンコーディングを変換する必要があります。mb_convert_encoding は実はとても便利な関数です。指定した文字列のエンコーディングを変換でき、utf8->big5 に限らず、その逆の変換もできます。GBK やほかのさまざまな国のエンコーディングにも対応しています。ただし、使う前に、PHP の mbstring が有効になっていることを必ず確認してください。
↑↑Windows ユーザーは C:Windowsphp.ini で php_mbstring.dll が正しくインストールされているか確認できます。
mb_convert_encoding の書式
mb_convert_encoding(変換する文字列, 変換先のエンコーディング, 元のエンコーディング)ファイルのダウンロード:Box.net | 4Shared | Xun6
例:
UTF-8 の文字列を Big5 に変換する場合:
$str='測試';
echo $str; //この時点ではまだ UTF-8
$str=mb_convert_encoding($str,'big5','utf8');
echo $str; //この時点では BIG-5
