「mb_convert_encoding」のご利用は計画的に

Date:

Share post:

「mb_convert_encoding」
普段は特に用のないものですが、
CSVを出力する時などには重宝します。

大抵の場合、出力するデータを全て用意し、
出力する直前に一気にコンバートするものだと思います。

しかし、コンバート後に加工が必要な場合、
どのように対応しているでしょうか?

例えば、ヤマトの送り状をCSV出力しようとした時、
文字制限に引っかかったら分割・切り捨てする必要があります。
その際の文字制限はバイト数です。
その為、一旦SJISにコンバートしてから加工しなければなりません。

一度SJISにしたものを再度UTF8にするのは無駄な処理だと考えれば、
他の要素も個別でコンバートする必要があります。

個別でもちゃんとコンバートできていれば問題はありませんが、
取りこぼしが発生するとたまりません。

「mb_detect_encoding」や「mb_check_encoding」等、
文字コードをチェックする処理もある為、
チェックした上で必要なものだけコンバートするという予防法も考えられます。

が、このチェックは完璧ではないようで、
安心して使う事ができません。
チェックに失敗し多重にコンバートすると文字化けを起こします。

多重コンバートをしない為には、
加工後に再度文字コードを戻すか、
間違いなく全ての要素にコンバートを行うように、
後から見て分かりやすくプログラムする必要があります。

迷走したくない方は、
「mb_convert_encoding」のご利用は計画的に行いましょう。

Related articles

LaravelでPDF生成(mpdf)

EC関連のシステムなどでは請求書や領...

我流Flutter学習ステップ(6)スマホでの動作...

本シリーズ(?)の最初の投稿で書いた...

その「平均値」に意味はあるのか?

最近「平均」に関して思うところがあっ...

遅まきながら、Vagrant(Virtualbox...

前回は、pumaを常時起動のユーザーサ...