ma-100140 @ ウィキ
文字化け関連
最終更新:
ma-100140
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が色々と便利...