• ベストアンサー

EUCで出力されるプログラムをS-JISで出力するようにしたい。

perlはまだかじる程度です。 あるサイトで配布されていたプログラムを使用していたのですが、 このプログラムでは、出力されるdatファイル(テキストファイル)がEUCで出力されます。 これをShift-JISで出力させたいんですが…できるんでしょうか。

  • Perl
  • 回答数5
  • ありがとう数1

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

  • ベストアンサー
  • j-mika
  • ベストアンサー率46% (15/32)
回答No.4

こんにちは。 「かじる程度」という事なので。もうちょっとだけかじれる程度の私が(^^; エディターは何をお使いですか? コードを指定して保存できる物でしょうか? 出来ないのであれば、ひとまず http://www.k-collect.net/program.htm 68行目の $CharSet = 'EUC-JP'; # 漢字コード $Encoding = 'euc'; を $CharSet = 'shift_jis'; # 漢字コード $Encoding = 'sjis'; へ変更 1410行目の print " <META http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">\n"; を print " <META http-equiv=\"Content-Type\" content=\"text/html; charset=shift_jis\">\n"; へ変更 これで、プログラムをshift_jisで保存、運用するとlogはshift_jisで 出来ると思います。

katsunodon
質問者

お礼

j-mikaさん、ありがとうございました。 ログはs-jisで保存されました! しかし、sjisにすると今まで正常に表示されていた文字(例:"予約")などが文字化けしてしまいました。 他にも、祝日の名前などが文字化けします。 でも、これはひとつひとつ調べて文字化けするところで\を入力しておけば大丈夫そうですね。 もし他にこの文字化けを改善する良い方法があればお願いします。 今回は本当にありがとうございました。 感謝です。

その他の回答 (4)

  • j-mika
  • ベストアンサー率46% (15/32)
回答No.5

うわわ・・・しまった。 使い出しと思っていたので、補足を忘れていました。 今までのログを取ってるといいのですが。 今までのログは、eucででていて。 プログラムはそれをsjisで読んで保存したので。 これまでのデータに文字化けが生じます。 これまでのデータを削除(空のログファイルをUP)して、改めて使い出すと文字化けはないかなと思いますが、いかがでしょうか。 本当の手順としては、ログファイルもDLして、sjisに変更、UPしないといけません。 気がまわらなくてすみませんでした(--;

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

require 'jcode.pl'; してるんだから、Jcode.pmだのnkfだの持ち出さないでも 出力する前に jcode::convert で sjisにしてから出力すればいいんじゃないでしょうか。

  • maku_x
  • ベストアンサー率44% (164/371)
回答No.2

perl で日本語を扱う場合は、Jcode モジュールを使用するのが一般的なようです(別途インストールが必要)。 http://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A1%E3%83%A2%2F%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AE%E6%89%B1%E3%81%84

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

てっとりばやくnkfで変換してみては?

関連するQ&A

  • EUCからS-JISへ、

    問:EUCからS-JISへ、 質問者:amuro_78 LINUXからいえnWindowsにテキストファイルを送ると文字が 化けてしまいます。文字コードを変換するソフトは ないのでしょうか? 窓杜で調べてみたのですが、、よくわからなくて、、、、 お願いします。

  • EUCからshift_jisに書き換えについて

    EUCで書かれたプログラムをshift_jisに書き換えて保存すると、稼動しないのでしょうか? ソースには表示されているのですが、画面上では真っ白で表示されません(涙

    • ベストアンサー
    • PHP
  • Shift-jisのPerlから、UTF-8、EUC、Shift-jisの3つのエンコードテキストを生成

    Shift-jisで作ったPerlにて、テキストをEUC、UTF-8、Shift-jisにエンコードし外部検索サイト等にテキストリンクを飛ばしたいのですが、うまくいきません。 過去ログにUTF-8から、EUC、UTF-8、Shift-jisへのエンコード方法をみつけ http://oshiete1.goo.ne.jp/qa3745875.html 試行錯誤しましたが、Shift-jisからはうまくいきませんでした。 perl のバージョンは5.8.8です。 ご教示のほどよろしくお願いします。

    • ベストアンサー
    • Perl
  • Shift_JISをeuc-jpに変換

    エクセルのデータをテキストに保存し直したデータがあります。 中身はタブ区切りの日本語の単語が数千レコード。 この時、このテキストファイルの文字コードは当然「シフトJIS」ですが、これをperlで受け取ってフォームから文字検索を行いテーブルに検索結果を表示させるプログラムを作りました。 シフトJISなので案の定、文字化けを起こしました。 なのでデータを一度「euc-jp」に変換すると「表」や「ー」などは文字化けを起こすことなく表示するようになりました。 ところが、「(1)、(2)、(3)・・・」の丸数字だけが何故か文字化けしたままで直りません。 なんとかなりませんでしょうか? #データの読み込み open F_DATA, '<', "$cgiparam" or die;  my @lines = <F_DATA>; close F_DATA; #文字コードの変換 foreach (@lines){  Encode::from_to($_,"Shift_JIS", "euc-jp"); } よろしくお願いします。

    • ベストアンサー
    • Perl
  • SEO的には EUCとシフトJISがどっちがいいの?

    JIS、シフトJIS、EUCなどありますが、グーグルのSEO的にはどちらがいいのでしょうか?

    • ベストアンサー
    • HTML
  • EUCのテキストファイルを読み込むと「文字化け」してしまいます

    ネットワーク上からテキストファイルを読み込むiアプリを作っています。 Shift-JISのテキストファイルは正しく表示されるんですが、 EUCのテキストファイルを読み込むと文字化けしてしまいます。 具体的にいうと,「重奏」という文字列は「スナチユ」と表示されてしまいます。 元のテキストファイルのエンコード方式をShift-JISにすれば直るんですが、テキストファイルはEUCのまま読み込みたいのです。 どうすればよいでしょうか…。

    • ベストアンサー
    • Java
  • ファイルの転送モード(Euc Jis 無変換)について

    ファイルの転送モードについてわからないので質問させてください。 ソフトはffftpを使用しています。 txt html cgi dat(bbsのログ) などはアスキーモードで転送するというのはわかったのですが、ffftpのメニューにある Euc Jis 無変換はどのように使い分ければよいのでしょうか?以下のファイルの場合、どれを選択すればよいか教えてください。また無変換で転送しなくてはいけないものにJisなどを使用した場合、何か問題は起こりますか?(特に掲示板のログファイルやCGIファイルなど) アスキー *.html *.cgi *.dat(bbs のログ) *.pl

  • UTF-8のPerlから、UTF-8、EUC、Shift-jisの3つのエンコードテキストを生成

    UTF-8で作ったPerl内で、UTF-8にエンコードしたい部分とは別に、 EUCやShift-jisにエンコードして、 UTF-8以外の仕様になっている検索エンジンなどの検索結果に、 テキストリンクを飛ばしたいのですが、行き詰まりました。 いい方法はありますでしょうか。

    • ベストアンサー
    • Perl
  • EUCで保存されたスクリプトにてShift_jisでのHTML出力

    perl見よう見まねで改造ができるレベルの者です。 表題の件ですが、ある登録スクリプトをEUCで保存し、登録データファイルもEUCで保存を行っているのですが、携帯からも対応させる為に、携帯用ページではShift_jisで表示を行いたいと思っています。 $word = "ああああ"; &jcode'euc2sjis(*word); 上記のようなコードで、EUCで保存されたスクリプト内の文字がShift-JISに変換されるというのを見つけたのですが、これがprint文の場合どうすれば良いのかわかりません。 例えば、 print "Content-type: text/html;charset=shift_jis\n\n"; print <<_HTML_; <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <form method="POST" action="CGIファイル"> 登録項目1<br> <input type="text" name="touroku1" value="$in{'touroku1'}"><br> 登録項目2<br> <input type="text" name="touroku2" value="$in{'touroku2'}"> </form> </body></html> _HTML_ 上記のようなHTMLをShift_jisで表示する場合、どのようにすればよいのでしょうか? use encoding 'euc-jp', STDOUT=>'shift_jis' while(<>){ print $_; } 上記のようなコードも調べたのですが、今一適用方法が解らない状況です。 また、携帯用ページではShift_jisで表示を行いたいのと同時に、登録データファイルにはEUCで保存されるようにする方法もご教授頂けますと幸いです。 宜しくお願い申し上げます。

    • ベストアンサー
    • Perl
  • EUC シフト、JIS、 Unicode UTF-8の違いについて教えてください。

    EUC シフト、JIS、 Unicode UTF-8の違いについて教えてください。 日本のみでサイトをつくる場合、どちらが適応しているのでしょうか? SEO対策など含めて知りたいのですが、お詳しい方のアドバイスが頂けませんでしょうか EUC シフト、JIS、 Unicode UTF-8、どちらでも作っているところがあり、イマイチ、どちらが良いか判断できません。 勉強不足での質問で恐縮ですが・・・ソフトは、Dreamweaverです。よろしくお願いします。

専門家に質問してみよう