最近、久しぶりにShift_JIS文字コードのDBが絡んだWebサイトを扱うことがあったので、その時使った小技を紹介。
キーと値の両方ともShift_JISとなっている連想配列を、一気にUTF-8へ変換するコードがこちら。
1 2 3 4 5 | foreach ( $data as $key => $val ) { $newKey = mb_convert_encoding( $key , 'UTF-8' , 'SJIS' ); unset( $data [ $key ]); $data [ $newKey ] = mb_convert_encoding( $val , 'UTF-8' , 'SJIS' ); } |
foreachでループ処理をかけ、一度文字コード変換後のキーを変数に保存。
それから元のキーを削除し、先に保存したおいた変換後のキーを振り直した配列に文字コードを変換した値を代入する。
これでキー・値のいずれもUTF-8に変換することができる。