「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

EC-CUBE(4.2系~4.3系)のプラグインを...

少し前から、日本郵便で『デジタルアドレ...

ラベル画像のトリミング(5)

「ラベル画像のトリミング(4)」では...

VirtualminでPHPの8.1をインストール...

すぐ忘れるのでメモ Virtu...

フロント担当のTIL 2025/05

「Today I Learned(今日学んだこと)」を記録するTIL、5月は社内プロジェクトのワインDB開発を中心に、様々な技術的な発見や課題解決がありました。