- ベストアンサー
スマートに euc ページを sjis にする方法
euc でかかれた htmlページを sjis にしたいのですが、 私が思いつく方法だと、open で開けて一行一行読み込み jcode::convert(\$input, 'sjis'); とかやって・・・それをまた、別のファイルに 一行一行保存・・・とかくらいしか思いつかないの ですが、もうちょっとマシな方法はないものでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは、honiyonです。 やり方は2種類あると思います。 1.コマンドに頼る #nkf- -s source.txt > dest.txt #rm -f source.txt #mv dest.txt source.txt 2.Perlで処理する open(IN, "source.txt); @dest = <IN> close(IN); open(OUT, ">source.txt"); #これで上書きされるかな? print(OUT, @dest); close(OUT); ファイル入出力の少ない 2の方が処理が早いかも知れませんが(多分)、処理するデータの量が多い場合(100Myteとか(笑))、メモリが足りなくなるかもしれません。 数十kbyte程度だったらどちらも差はないと思います。 前回同様、構文には自信がありません(^^; 参考になれば幸いです(..
その他の回答 (1)
- honiyon
- ベストアンサー率37% (331/872)
こんにちは、honiyonです。 もしサーバーが、LinuxやBSDで、かつコマンドの使用を許可していれば、nkfというコマンドを使用する方法があります。 このコマンドは、nkf -s source.txt という風にやると、source.txtの漢字コードを SJISに変換して出力してくれます。 open(f, 'nkf -s source.txt'); というようにして使うと幸せになれるかも知れません。 Perlだけでもっとスマートに行える方法があるかも知れませんが、私はよく知らないので(^^; (openの式も間違ってるかも... 参考になれば幸いです(..
お礼
ありがとうございます。 昨夜ぜひとも試してみたかったのですが、ちょっと 時間がとれなかったもので。 今週中には確認したいと思います。 締め切りまでもう少しお時間ください。
補足
すみません、本日無事出力するできることを確認し ました。。。しかし、これを変換した後、再び同じ ファイルとして保存、または変数に入れるには どうしたらいいのでしょうか? お時間があるとき、もしよろしければで結構ですので お教えください。 尚、2、3日で締め切りたいと思います。
お礼
再度の回答ありがとうございました。 大変参考になりました。m(__)m