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開発ではAtomを使っているが、Atomならデフォルトで背景色は闇夜のように暗い黒ではなく、いい感じの …

YouTube補足資料 パソコン教室vol.2 我が家のパソコンをお見せします

今回の記事はYouTube動画の補足資料になります。   YouTubeでパソコン教室をやっています。よろしければ。   ①私のパソコン 中古ノートパソコン Lenovo製 x1 …

AS400/IBMi シンクライアントを132画面対応にする設定

シンクライアントとは必要最低限の機能しかもたず、処理はすべてサーバ側でまかなうようにする端末のこと。 PCのクライアントアクセスとは使い勝手が少々異なるので設定に困った。 エミュレーションタイプの画面 …

Camtasia9でメディアの種類がサポートされていないか…

本件は、 メディアの種類がサポートされていないか、必要なコーデックが見つかりません。 というエラーの調査です。iPhone11Proで4K/60Fpsで撮影した動画で起きました。 尚、本件は解決してい …

AS400/IBMi DB2 SQL 文字を数値に変換して小数で表示する

自分の備忘録です。 間違えがあったらご容赦ください。 その場合はご指摘いただければ大変助かります。   文字列型のフィールドの中に無理やり数字を入れているケース、というか数字として自分で認識 …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に