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 *

関連記事

Windows Defender があれば市販のセキュリティソフトはいらないらしい

今回はパソコンのセキュリティソフトについての話です。これまた自己責任でお願いします。 しかもこれは聞いた話を記事にしているだけなので、真偽は確認しておりません。   私のいる会社 私のいる会 …

AS400/IBMi DDSのCAとCFの違いを超わかりやすく

本記事は私の備忘録なので間違いがあればご容赦ください。   今回は、DDSに指定するCAとCAの違いについてです。   結論から言うと、指定したファンクションキーを押した後、画面に …

AS400/IBMi キー操作やファンクションキーまとめ

備忘録です。追記していきますので書きかけです。   ファンクションキーまとめ   半角カナの文字化け 半角カナが文字化けしているときがある。文字コードの変換のショートカットキーらし …

AS400/IBMi サブファイルで入力後にカーソルを下に移動させる SFLCSRPRG

例えばサブファイルの入出力項目が5列あったとして、ユーザがタンタンとエンターキーでカーソルを飛ばして入力していくと、通常は次のカーソルは右に移動する。   これを下に移動させるには、DDSで …

AS400/IBMi QRYプログラムからSQL文を生成

あまり意味ないかもしれないけど、備忘録。 使用しているQRY/400の定義からSQL文を逆算して出力する方法。   まずSQLソースファイルを作る。逆算したSQL文を置く場所ですね。 CRT …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に