
Perl二日目の激初心者です。
端末にパールとアパッチを導入し
テキストを読みながらあくせくしております。
で、早速エラー個所ですが
以下のスクリプトの下のほうの
$comment = "いつもより結構マシ";
の「構」の文字のみブラウザから見ると化けて
「いつもより結鴻}シ」と、なります。
試しに他の文字にしますと
(例えば「随分」とか)エラーは起きません。
質問の仕方や、論点がわかりにくいと思った方は
是非ご指摘下さい。
宜しくお願いします。
■環境
OS:2000
ブラウザ:IE、FireFoxいずれでも同症状を確認
Cドライブ直下にパールとアパッチが入ってます。
■エラーと思われる個所
$saikoro = int( rand 3 );
if($saikoro == 0) {
$kekka = "凶";
$comment = "今日は外れ。";
}
elsif($saikoro == 1) {
$kekka = "小吉";
$comment = "いつも通りじゃない?";
}
else {
$kekka = "大吉";
$comment = "いつもより結構マシ";
}
No.2ベストアンサー
- 回答日時:
'構'の字は、コード8D 5Cであり、エスケープ文字である「\」と勘違いしてしまいます。
#1さんの仰る様に、これが原因で文字化けを起こしていますが、[いつもより結構\マシ]と、文字の後ろに¥です。
なお、この例の様に、""の内容に変数を含めない場合(展開しない場合)には、""ではなく''を用いれば、回避できる事が多いです。
ご指摘ありがとうございます。
なおりました!
こういった「エスケープ文字と勘違い」って多いものなんですかねぇ?
あと、ご指摘どおり "を'に修正し\をつけない状態
$comment = 'いつもより結構マシ';
に、した所これまたエラーは回避できました。
これからも精進に励みたいと思います。
本当にありがとうございました。
No.1
- 回答日時:
日本語に対応していない処理系(コンパイラやインタプリタ)に有りがちな「\」問題でしょうか。
試しに、"いつもより結構マシ"を"いつもより結\構マシ"としてみてください。
C言語で'\n'とすると改行を意味しますが、このとき付ける'\'がエスケープシーケンスになっています。'\'の次の文字と合わせて特殊な文字を現わしているのですが、'\'自身を表現するために'\\'とします。
文字コードを調べるのがめんどうなので解りませんが「構」が'\'と同じ値を持っていたら'\z'みたいになって1バイト分文字が落ちてしまうと言うことです。それを'\'を追加することで補います。
早速のご指摘ありがとうございます。
やってみたのですが...なおりません。
でも、エラーの原因個所に間違いなさそうですし
大変勉強になりました!
やっぱりPerlは難しいです...。
(ちなみに回答No.2 sion_fsさんのご指摘どおり
「結構\マシ」 と、後ろに記載したところ直りました。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
レコード登録時に「演算子があ...
-
エクセル 足し算引き算で 空...
-
ActiveCell.FormulaR1C1の変数
-
【VB.NET】 パワポ操作を非表示で
-
【VBAエラー】Nextに対するFor...
-
「実行時エラー '3167' レコー...
-
VBA データ(特定値)のある最...
-
VB.NETでMessageBoxが表示され...
-
【Access】Excelインポート時に...
-
ACCESSで値を代入できないとは?
-
paizaで下記コードを提出すると...
-
mailstorehomeのエクスポートで...
-
CATIA注釈について教えて下さい。
-
String""から型'Double'への変...
-
エクセル関数式=ABSで#VALUE!...
-
文字を数字に変換したい
-
UBoundに配列がありませんとエ...
-
VB6のプログラムをWIN7で使いたい
-
オートシェイプの削除時のエラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
【Access】Excelインポート時に...
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
ACCESSで値を代入できないとは?
-
VBA エクセル で FIND でのエラ...
-
Filter関数を用いた結果、何も...
-
レコード登録時に「演算子があ...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
【VBAエラー】Nextに対するFor...
-
実行時エラー 438 の解決策をお...
-
「実行時エラー '3167' レコー...
おすすめ情報