EUCで保存されたスクリプトにてShift_jisでのHTML出力

このQ&Aのポイント
  • 質問文章からShift_jisでのHTML出力について
  • EUCで保存されたスクリプト内の文字をShift-JISに変換する方法
  • 携帯用ページではShift_jisで表示し、登録データファイルにはEUCで保存する方法
回答を見る
  • ベストアンサー

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
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

最初の方法の場合、 print <<_HTML_; の部分を $word = <<_HTML_; #_HTML まで同じ &jcode'euc2sjis(*word); print $word; とでもすればいいんじゃないでしょうか 2番目の方法の場合、 use encoding 'euc-jp', STDOUT=>'shift_jis' を頭に書いておいて print "Content-type: text/html;charset=shift_jis\n\n"; print <<_HTML_; #以下略 でいいと思います。 >登録データファイルにはEUCで保存されるようにする 2番目の方法の場合 書き出すファイルのオープンで open(OUT,">:encoding(euc-jp)","EUC.dat"); のようにするといいと思います。 、

Ruffian
質問者

お礼

お教え頂いた方法をヒントにうまく動作させる事ができました! ご教授頂きまして有難うございました。

関連するQ&A

  • HTMLがSHIFT-JISにならない

    いつもお世話になります<(_ _)> 携帯電話用サイトを作っているのですが、HTMLファイルの最初に <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> と設定しても、PCでアクセスした時にUTF-8で表示され文字化けされてしまいます。 HTML自体の文字コードはSHIFT-JISで保存されております。 手元に携帯電話がないので、まだ携帯表示は確認していませんが、スマートフォン(Android)で見ても文字化けしています。 なぜcharsetでSHIFT_JISを指定し、ファイルもSHIFT_JISで保存しているのにも関わらず、UTF-8になってしまうのでしょうか・・・? 同じような現象をご存じのかた、是非ともお力添え下さい。 宜しくお願い致します<(_ _)>

    • ベストアンサー
    • HTML
  • Shift_JISが選ばれてしまう

    韓国語のサイトを作成したのですが 文字コードを「euc-kr」にして作成しました。 しかし、実際にページを開くと「Shift_JIS」 が選ばれてしまい、文字化けが起きてしまいます。 <meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> 上記のような記述なのですが 何か問題がありますでしょうか。 また、その他考えられる原因がありましたら 知恵をお借りできれば幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • perlでHTML出力時の文字コード

    Perlスクリプト中でHTML出力しているのですが、print "Content-type: text/html\n\n";と記述するとEUCで正常に表示され、print "Content-type: text/html; charset=Shift_JIS\n\n";と明示的にSJISを指定すると空白ページが表示されてしまいます。このスクリプトの他の場所ではprint "Content-type: text/html; charset=Shift_JIS\n\n";で正常にSJISで表示されます。どうしてだかわかりません。どなたかご教授お願いします。

  • Shift-jisで記述したHTMLをutf-8で保存するにはどうした

    Shift-jisで記述したHTMLをutf-8で保存するにはどうしたらいいですか? 使ってるソフトはez-htmlとFFFTPです。 InternetExprolerでは表示できますが、 他のブラウザでは文字化けしてしまい困っています。 <head>タグの中に、 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> と入力はしてあります。 でも、中身はShift-jisのままでダメだそうで。 ネットで解決策をいろいろ探しましたが、 何が何だかさっぱり分かりませんでした。 こうすればいいというアドバイスをお願いします。

    • ベストアンサー
    • HTML
  • EUC-JPをShift_JISに変えても大丈夫ですか?

    YahooのジオクリエイターでHPを作っていたら文字コードが<meta http-equiv="content-type" content="text/html; charset=EUC-JP">このようになっているんですが <meta http-equiv="content-type" content="text/html; charset=Shift_JIS">に変えてしまっても問題ないんでしょうか? 複数ページがあって、いくつかのページだけEUC-JPで、ほかのページはShift_JISでした。 Shift_JISがメジャーと聞いたので全てのページの文字コードをShift_JISに変えてしまおうと思うんですが ほかのタグなど一切変えず文字コードだけ変えて、今まで普通に見れてたものが見えなくなったり、何か不具合が起こることはないんでしょうか? 今後、ジオクリエイター以外の環境でHPを作成・編集することもできるようにShift_JISで統一させておいたほうがいいですよね? よろしくお願いします。

    • ベストアンサー
    • HTML
  • "Content-type:text/html;charset=shift_JIS\n\n" がテキスト表示されてしまう。

    CGIで print "Content-type:text/html;charset=shift_JIS\n\n"; を出力すると その文字列がそのままブラウザにテキスト表示され、その後ろの操作、 例えば、 print "Status: 301 Move Permanent\n"; print "Location: http://localhost/file/data-1.lzh\n\n"; も、単純に文字列として表示されてしまいます。 ところが、print "Content-type:text/html;charset=shift_JIS\n\n"; の行を削除すると、 もともとの目的の動作(上記の例ではファイルのダウンロード画面ポップアップ)になります。 このように、print "Content-type:text/html;charset=shift_JIS\n\n";を書かなくて済む (あるいは書かない方が良い場合)というのは、なぜでしょうか。 サーバによっては動作が変わるのでしょうか。 ※そのCGI内で、print "Content-type:text/html;charset=shift_JIS\n\n"; を2行書いてあるというようなことはありません。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • Shift_JISでコーディングされたものをUTF-8にして移設したい

    Dreamweaverで昔作ったShift_JISコードのHTMLファイルが幾つかあり、それらをHTMLも組み込めるCMS的なシステムに移そうとしたところ、コードをUTF-8で作る必要があったため、 <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> に変更してみましたが、レイアウトが崩れまくってしまいます。 ブラウザで再度Shift-JISを選択しなおすとちゃんと表示されるのですが‥。 これを解決する方法はあるのでしょうか。。それとも一からUTF-8として作り直した方がよいのでしょうか‥。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • Dreamweaverで「shift_jis」→「utf-8」

    DreamweaverMX2004を使用しています。 以前に文字コードをshift_jisで作ったhtmlを全てutf-8に変更したいと思っています。 これを行う場合、Dreamweaverのコードビュー画面で <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> ↓ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> と直接手で書き換えるだけで、文字コードはDreamweaverが自動的に保存しなおしてくれるのでしょうか? (もしくはメニューの「ページプロパティ」でエンコーディングを変更できるようですが、どちらの方法にしても) また、これをDreamweaverではなく、テキストエディタ(TeraPad等)で行う場合、どのような方法になりますでしょうか。 また、UTF-8でhtmlを作成する際、shift_jisとは別の点で何か注意しなければならないことはありますか? よろしくお願い致します。

  • charset=UTF-8なのにShift-JISになっちゃいます!

    <META http-equiv=content-type content="text/html; charset=UTF-8"> と記述して、ブラウザ(IE6)で確認したのですが真っ白な画面になり、ブラウザのエンコードを確認した ところShift-JISになっていました。自動選択にしてもShift-JISになってしまいます。 UTF-8でどうしてもウェブを作りたいのですがエンコードがShift-JISにならない方法を教えていただけないでしょうか? 使っているエディタは秀丸です。

    • ベストアンサー
    • PHP
  • charset=Shift_JIS

    4つのhtmlを作成し metaタグを以下のように記述しました。 <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" type="text/css" href="css/style.css"> <script language="javascript1.2" src="js/openex.js"></script> <link rel="stylesheet" type="text/css" href="css/style.css"> 2つのファイルが、IEにおいてエンコード(UTF-8)を選択しないと見れません。 オーサリングソフトは、ホームページビルダーV9です。 最初に作成したときは、気づかなかったのですが、設定において ”文字エンコードをmetaタグで指定する”の設定項目を自動にしておりました。 すると 2つのファイルが自動で charsetが、UTF-8になってたようです。 その後設定をSHIFT_JISにし、charset=UTF-8となったところは charset=SHIFT_JIS"には、後で書き換えました。 ページを作成する際、テンプレートを作成して 4つのファイルを作成したはずなんですが、 なぜ こうなってしまったのかが わかりません。 charset=SHIFT_JIS"を指定してるのに なぜUTF-8を選択しないと見れないのでしょう? かなり 困っています。何度もファイルを書き換えましたが、解決しません。わかる方 なにとぞご教示ください。

専門家に質問してみよう