[PHP-users 34918] Re: 固定長電文の解析(解決)

abs kenken_abs @ leto.eonet.ne.jp
2010年 1月 5日 (火) 11:43:10 JST


大久保様
@Workgroup様
浅川様、

ありがとうございます。
結局下記のサンプルで解決できました。
私自身mb_***関数の使い方をよく理解できていなかったと思います。

本当にありがとうございました。

>> //文字コードを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 メーリングリストの案内