• ベストアンサー

ファイルの変換

サーバ上にあるdata.txt(SJIS)をUTF-8にファイル変換して、 data1.txtとして別名で保存したいのですが どのようにすればいいでしょうか? Perl バージョン 5.008004 です。

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

  • ベストアンサー
  • stiffels
  • ベストアンサー率34% (25/72)
回答No.1

Encodeという標準ライブラリを使ってみたのですがどうでしょう? use Encode; my $buff; open(FILE, "< C:\\data.txt"); foreach (<FILE>) {$buff .= $_;} close(FILE); Encode::from_to($buff, "sjis", "utf8"); open(FILE ,"> C:\\data1.txt"); print FILE "$buff"; close(FILE);

gooID3
質問者

お礼

うまくいきました。ありがとうございます。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

そのShiftJISのテキストがどのような出自なのかわかりませんが、 Windowsユーザーが作ったドキュメントなどであるなら、 from_to($text, 'sjis', 'utf-8') よりは from_to($text, 'cp932', 'utf-8') にしておいたほうが無難です。 これでも期待通り変換できない場合があったりしますけど。

gooID3
質問者

お礼

data.txt(SJIS)はperlから出力されたものです。 ちがいがよくわかりませんがcp932でもうまくいきました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう