• ベストアンサー

スマートに euc ページを sjis にする方法

euc でかかれた htmlページを sjis にしたいのですが、 私が思いつく方法だと、open で開けて一行一行読み込み jcode::convert(\$input, 'sjis'); とかやって・・・それをまた、別のファイルに 一行一行保存・・・とかくらいしか思いつかないの ですが、もうちょっとマシな方法はないものでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • honiyon
  • ベストアンサー率37% (331/872)
回答No.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程度だったらどちらも差はないと思います。 前回同様、構文には自信がありません(^^; 参考になれば幸いです(..

yasu
質問者

お礼

再度の回答ありがとうございました。 大変参考になりました。m(__)m

その他の回答 (1)

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんにちは、honiyonです。  もしサーバーが、LinuxやBSDで、かつコマンドの使用を許可していれば、nkfというコマンドを使用する方法があります。  このコマンドは、nkf -s source.txt という風にやると、source.txtの漢字コードを SJISに変換して出力してくれます。  open(f, 'nkf -s source.txt'); というようにして使うと幸せになれるかも知れません。  Perlだけでもっとスマートに行える方法があるかも知れませんが、私はよく知らないので(^^; (openの式も間違ってるかも...  参考になれば幸いです(..

yasu
質問者

お礼

ありがとうございます。 昨夜ぜひとも試してみたかったのですが、ちょっと 時間がとれなかったもので。 今週中には確認したいと思います。 締め切りまでもう少しお時間ください。

yasu
質問者

補足

すみません、本日無事出力するできることを確認し ました。。。しかし、これを変換した後、再び同じ ファイルとして保存、または変数に入れるには どうしたらいいのでしょうか? お時間があるとき、もしよろしければで結構ですので お教えください。 尚、2、3日で締め切りたいと思います。

関連するQ&A