プロが教えるわが家の防犯対策術!

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で保存されるようにする方法もご教授頂けますと幸いです。

宜しくお願い申し上げます。

A 回答 (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");
のようにするといいと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/07 18:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!