SJISのファイルを作成したい
created: 2003-12-15 15:19 | modified: 2003-12-15 15:49 | reply: 2
[1168] SJISのファイルを作成したい
EUC→SJIS変換に関する問題で手詰まってしまいました。どなたか知恵をお貸しいただけないでしょうか?
RedHatLinux8にApache2 2.0.48、PHP4.3.3、PostgreSQL7.3.4で社内イントラシステムを構築しています。
PHPのソースはすべてEUCで書いているのですが(DBのデータももちろんEUC)、検索条件をフォームに入力して、データベースから検索をかけて結果を表示するという非常にシンプルなプログラムがあります。
今回、この検索結果をExcelやAccessに取り込んで使いたいという要望があり、この検索結果をCSV形式のファイルとしてWebサーバ上で作成し、そのファイルをWinクライアントからダウンロードさせるという(変な?)システムを考えました。
実行結果は当然EUCですので、検索結果を1魚ずつ取り出してはmb_convert_encoding($data, "SJIS", "EUC-JP")で変換して、ファイルに書き出すというプログラムを作成しました。確かに実行結果はすべてSJISになったのですが、改行「\n」がCRLFに変換されずに困っています。
PHPのコードはEUCで、SJISに変換した文字列にCRLFを付けてファイルに出力する方法はありませんか?
RedHatLinux8にApache2 2.0.48、PHP4.3.3、PostgreSQL7.3.4で社内イントラシステムを構築しています。
PHPのソースはすべてEUCで書いているのですが(DBのデータももちろんEUC)、検索条件をフォームに入力して、データベースから検索をかけて結果を表示するという非常にシンプルなプログラムがあります。
今回、この検索結果をExcelやAccessに取り込んで使いたいという要望があり、この検索結果をCSV形式のファイルとしてWebサーバ上で作成し、そのファイルをWinクライアントからダウンロードさせるという(変な?)システムを考えました。
実行結果は当然EUCですので、検索結果を1魚ずつ取り出してはmb_convert_encoding($data, "SJIS", "EUC-JP")で変換して、ファイルに書き出すというプログラムを作成しました。確かに実行結果はすべてSJISになったのですが、改行「\n」がCRLFに変換されずに困っています。
PHPのコードはEUCで、SJISに変換した文字列にCRLFを付けてファイルに出力する方法はありませんか?
[1169] \n → \r\n
user: ゆうじ | created: 2003-12-15 15:30
当然ながら mb_convert_encodingでは
改行コードまでは変換してくれませんので
こんなところでいかがでしょう。
改行コードまでは変換してくれませんので
こんなところでいかがでしょう。
$data = mb_convert_encoding($data, "SJIS", "EUC-JP");
$data = str_replace("\n", "\r\n", $data);
[1171] 完璧です
ゆうじさん早速のレスありがとうございました。
早速試したところ、ばっちりできました。
PHPの参考書は5冊くらい持ってるんですが、調べ方が甘いのでしょうね。
「¥r」ってのは初めて知りました。
調べなおしてみたいと思います。
大変助かりました、ありがとうございました。
早速試したところ、ばっちりできました。
PHPの参考書は5冊くらい持ってるんですが、調べ方が甘いのでしょうね。
「¥r」ってのは初めて知りました。
調べなおしてみたいと思います。
大変助かりました、ありがとうございました。