IT関連

AS400/IBMi PHPで配列の文字コードを一気に変換する

投稿日:2019年3月13日 更新日:

AS400からODBCでデータを取得して表示したら、私の環境ではSJISのためそのまま画面に表示すると文字化けする。

 

ソースコードなどはUTF8で統一しているため、SJIS統一はしない方針。

 

そのため行ごとに取り出す際、mb_convert_encodingを行っていた。convで関数化している。

 

しかし、$array = $st->fetchall(PDO::FETCH_ASSOC);でデータベースをそのまま配列にぶち込み、その後php_excelなどで配列のままエクセル化したいなどの処理を行いたいと思ってきた。しかし、何も処理せず、SJISのまま配列に放り込んでしまうと、吐き出すとき結局文字化けする。

 

そこで、調べたら、mb_convert_variables()で配列ごとを文字変換できるそうだ。

 

コードは

$array = mb_convert_variables(“UTF-8″,”SJIS-win”,$array);

 

ただし、print_r($array);で出力すると、RECURSIONとエラーっぽく表示される。

しかし、きちんと変換はされているから問題ない。foreachで吐き出してみると、きちんと変換されている。

スポンサーリンク




スポンサーリンク




-IT関連
-, , ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

AS400/IBMi 無料でWeb化 GUI化 オープン化 Linuxサーバ構築編 3/3

最後の難関。Linuxサーバの構築編3/3(CentOSインストールからODBC接続まで)です。   サーバにCentOSをインストール 表題はサーバになっていますが、今回は動くかどうかのテ …

MySQL 自分の備忘録

予備知識 ポートのデフォルトは3306 大文字小文字は区別されない。混じっていても実行できる。区別する場合はbinaryをつける(下記参照) データベースごとに作業ユーザを設定するのが一般的 orde …

Windows コマンドプロンプト 備忘録

書きかけです。   コマンドプロンプトの起動 「Win」+「R」にcmdと入力してエンター   コマンドプロンプトの終了(exit) C:\Users\User> exit …

AS400/IBMi フリーフォームRPGの書き方備忘録

私の備忘録です。何も知らない初心者なので見当違いがあるかと思います。 よろしければぜひご指摘ください。順次追加していきます。     よくあるYの指定 RPGIIIやRPGIVで一 …

FTPができるようにしておかないとな

そろそろバックアップを取らなければならないな。投稿数が伸び悩む中でも、これだけの投稿が一瞬で無くなってしまうのも、ぞっとする。もしバックアップ&復元が失敗したら、今書いている文字すら電子のチリとなって …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に