[PHP-users 34917] Re: 固定長電文の解析

浅川 倫之 tom @ asakawa.ne.jp
2010年 1月 5日 (火) 03:02:39 JST


あさかわ


> //文字コードをSJIS⇒UTF8に変換
> $str=mb_convert_encoding($str,"utf-8","SJIS");

この行を、削除して

下記の様に、そ固定長処理のあとで、SJIS->UTF8に変換するのです。

//各カラムのデータ取得
$str_1 = substr($str,0,10);
$str_1=mb_convert_encoding($str_1,"utf-8","SJIS");

$str_2 = substr($str,11,10);
$str_2=mb_convert_encoding($str_2,"utf-8","SJIS");

$str_3 = substr($str,21,20);
$str_3=mb_convert_encoding($str_3,"utf-8","SJIS");

$str_4 = substr($str,41,30);
$str_4=mb_convert_encoding($str_4,"utf-8","SJIS");

$str_5 = substr($str,71,30);
$str_5=mb_convert_encoding($str_5,"utf-8","SJIS");

$str_6 = substr($str,101,30);
$str_6=mb_convert_encoding($str_6,"utf-8","SJIS");

つまり
コード変換してから、固定長データを処理するのではなく。
固定長データを処理してから、コード変換するのです。
また、固定長データの処理に、mb_*関数を使用しては駄目です。



PHP-users メーリングリストの案内