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 *

関連記事

XAMPPのPHPでメール送信する

どこを調べてもPHPでメールを送るのは簡単だ。と、ドヤ顔でこんなソースを載せている。それは解ったんだけど、mb_send_mailが使えないんだよ。とブツブツ言いながら調べてphp.iniを直したりな …

AS400/IBMi Laravel DBクラスとクエリビルダとEloquentをそれぞれprint_rしてみた

青本で学習しながら、開発しながらを繰り返してなんとかやっている。   私の場合はAS400(DB2)の開発にLaravelを使っているので、データベースに関しては神経を使っている。 &nbs …

AS400/IBMi DTFで出来ること色々

自分用備忘録&書きかけです。   SELECT句に色々指定してみる。 今日は2019年03月07日   CURRENT DATE 19/03/07   YEAR(CURR …

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

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

AS400/IBMi OPNQRYFでJOINを使ってみる

前置き 私が思い出すための備忘録なので間違いがあるかもです。 逆にこういう使い方があるよというのがあれば教えてほしいです。   やりたいこと SYOHINという商品マスタがあり、IDとしてD …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に