![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
UTF-8で下記スクリプトを書いて実行すると、
$yy年$mo月$dd日 にあたる部分が表示されず、($day)$hh:$mm:$ss の部分しか表示されません。
------------------------------------
#!/usr/bin/perl
use utf8;
use Encode;
&get_date();
print "Content-type: text/html\;charset=utf-8\n\n";
print encode('utf8',"$date");
exit;
sub get_date {
($ss,$mm,$hh,$dd,$mo,$yy,$day)= localtime(time);
$day = ("日","月","火","水","木","金","土")[$day];
$yy = $yy+1900;
$mo++;
if ( $mo < 10 ) { $mo = "0$mo"; }
if ( $dd < 10 ) { $dd = "0$dd"; }
if ( $hh < 10 ) { $hh = "0$hh"; }
if ( $mm < 10 ) { $mm = "0$mm"; }
if ( $ss < 10 ) { $ss = "0$ss"; }
$date = "$yy年$mo月$dd日($day)$hh:$mm:$ss";
}
------------------------------
EUCコードでスクリプトを書いてencodeなど不要な部分を変更した場合は$yy年$mo月$dd日の部分も表示されます。
また、上記
$date = "$yy年$mo月$dd日($day)$hh:$mm:$ss";
の部分を下記のように変更すると表示されますが...
--------------------------
$date = $yy;
$date .="年";
$date .= $mo;
$date .="月";
$date .= $dd;
$date .="日";
$date .="($day)$hh:$mm:$ss";
--------------------------
なぜ一括してダブルクォートで囲むと表示されないのでしょうか?
今まではEUCでスクリプトを書いておりました。UTF8に翻弄されております...
どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
Perlはあまり良く知らないのですが
use utf8;
とすることで変数名に日本語を使えるようになるのではないでしょうか
そのせいで$yy年 という変数として処理されているのでは
PHPなら
"${yy}年${mo}月${dd}日($day)$hh:$mm:$ss";
とするのですがPerlはどうでしょうか
*PHPでは最初から変数に日本語が使えるのでよくこの間違いをやっていました
"${yy}年${mo}月${dd}日($day)$hh:$mm:$ss"
とすることで問題なく表示できました!
ありがとうございます!
No.4
- 回答日時:
sprintf使うなら0パディングはsprintfにやらせた方がすっきりすると思いますよ。
sub get_date {
($ss,$mm,$hh,$dd,$mo,$yy,$day)= localtime(time);
$day = ("日","月","火","水","木","金","土")[$day];
return sprintf("%d年%02d月%02d日(%s)%02d:%02d:%02d", $yy+1900,$mo+1,$dd,$day,$hh,$mm,$ss);
}
> 今はまだEUCでスクリプトを書く方が安全なのでしょうか?
私がperlを使い始めたのはperl5.8以降からなので
ずっとUTF-8でperlコードを書いてますが特に困ったことはないですね。
今までEUCで書いてた人がどう思うかは知りませんが。
ありがとうございます!
>UTF-8でperlコードを書いてますが特に困ったことはないですね。
そうなんですね...ということは私の勉強不足ですね...精進します!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SQLについて質問です。 SELECT TO_CHAR(TO_DATE('90-10-08.'YY- 4 2022/05/13 20:55
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/12/23 14:57
- Excel(エクセル) 年月表示を取り出すには 5 2023/02/23 22:51
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Access(アクセス) エクセルのVBAについて教えてください。 4 2023/01/21 10:21
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- JavaScript gasについて 1 2022/05/31 21:51
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームから送られてきた文字...
-
何時間後を求める。
-
例外処理のフローチャートの記...
-
ユーザー定義関数に#NAME?が返...
-
モジュールとクラスの違いって...
-
「デバイスは PRN を初期化でき...
-
エクセルVBAでシートモジュール...
-
現在アクティブなフォーム名を...
-
VBAでoutlook365が起動しません。
-
VBSがコンパイルエラーになりま...
-
VBAで旧字体を異字体に一括で変...
-
VBAのバージョン管理
-
モジュールとは何ですか
-
NET::POP3の代用できるスクリプト
-
perlスクリプトのブラウザURLか...
-
モジュールからフォームのボタ...
-
【vba】フォームに書いてあ...
-
Pythonプログラミングでエラー
-
LCD ディスプレイを Raspberry ...
-
クラスモジュールについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラー
-
XML::XPathで日本語検索するには
-
perlスクリプト s/^\\s+//; ...
-
PerlでIPアドレスを取得する方法
-
「CGIプログラムエラー」って何...
-
perl+shiftjisで5c文字化けの対...
-
実行時パラメータを使用するとE...
-
正規表現でのエラー
-
フォームから送られてきた文字...
-
何時間後を求める。
-
windowsXP上で動作する最新版の...
-
UTF8でperlスクリプトを書くと...
-
ActivePerl 1行入力で 'と"が...
-
Perl 教えてください。
-
メールフォームから大きめの添...
-
perlでactive directoryに登録
-
ローカルテストOKのPerl サー...
-
Perlで長音
-
syntax OKなのに・・・
-
Perlでのルート計算で、小数点...
おすすめ情報