ma-100140 @ ウィキ 文字化け関連
※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

SJISのCSVファイルをPHPのfgetcsvで処理したときの問題

SJISのCSVファイルの中に全角ダッシュ「―」やカタカナの「ソ」があったときにfgetcsvはうまく処理できてない。
多分内部でエンコードしているんだろうけど、そのエンコードがおかしいのでは
悩んだところで解決策がありました。ありがとうございます。バグの発見に半日悩んだ...

http://netlog.jpn.org/r271-635/2008/08/php5_fgetcsvsjis.html

windows2003R2のrcpコマンドと文字コード

windows2003R2からLinuxのサーバーへデータをリモートコピーしています。
今までは$LANGには何も設定していません(英語モード)でしたが、日本語の表示ができるように$LANG=ja_JP.eucJPを設定。そうすると何故かrcpがこけます。日本語モードを止めて英語モードにするとうまくいきます。windowsのrcpはcp932なのかな?

「予」とか特定の文字とデータに\があった時の対応の両立

db2からのデータをSQL文としてファイルに保存しています。その時にデータの中に\があった場合のために

$value = str_replace("\\","\\\\",$value);

というように\をエスケープしています。しかし困ったことに「予」などS-JIS問題で対象となる文字の時に

予\

というようになってしまいます。1バイトずつ処理していくと\がひっかかるんだろうな。

仕方ないので、これらの文字の場合「予\」は「予」と\を消す処理をこの後に追加します。

 $value = str_replace("予" . "\\", mb_substr("予", 0, 1), $value); 

phpでSJIS使うのは面倒ですけど、クライアントがMSを考えるとやはりSJISが色々と便利...