• ベストアンサー

何故か表示されない文字について

宜しくお願いします。 phpファイルで、<?php ?>の間で、『ソ』で終るとなぜかエラーが返ってきます。ためしに、テストファイルを作って <? ソ ?> とだけ入力してアクセスしたら、こんな内容のエラーが返ってきました。 Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /****/****/test/test.php on line 2 という内容でした。 どうしてか良く分からないのですが、理由が分かる方お教え下さい。宜しくお願いしますm(__)m

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

  • ベストアンサー
  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

■理由 「ソ」の文字コードがShiftJISの場合、第二バイト目に バックスラッシュ(\)が含まれているから。 ■対処 「ソ\」となどと、後にバックスラッシュ(\)を付加すれば OKです。このような、ShiftJISのダメ文字は「表」など いくつかあります。 ■再現テスト <?="ソ"?> とするとエラーとなるはず。 <?="ソ\"?> とすると、「ソ」と表示されるはず。 ■その他のダメ文字 ―ソЫIX噂浬欺圭構蚕十申曾箪貼能表暴予禄兔 喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭  ※「入力されたテキストに機種依存文字が含まれて    いましたので変換させて頂きました。」   と言われ、一部情報が欠落しているかもしれないので注意。

参考URL:
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&safe=off&ie=SJIS&oe=SJIS&q=ShiftJIS+%83_%83%81%95%B6%8E%9A
nikuq
質問者

お礼

ありがとうございます。 こんなにいっぱいダメな文字があったんですね(T_T) 勉強になりました!ありがとうございましたーm(__)m

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • trisagion
  • ベストアンサー率68% (15/22)
回答No.2

文字コードがShift-JISの場合「ソ」や「表」のような文字は文字化けの原因となります。 Shift-JISは2バイトコードなので2バイト目が「\」と解釈され、次の文字(おそらく改行)がエスケープされるためおきていると思われます。

nikuq
質問者

お礼

ありがとうございます。 なるほどー(^.^)改行コードの一個目の『\』に、ソの二個目の『\』がカブって『\\』状態になって改行の『\』が消されてしまうという事ですね(>_<) やっとスッキリしました!ありがとうございましたm(__)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPのエラー「Unexpected character ...」「syntax error, unexpected ...」について

    PHP Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /home/***/***.php on line 25 PHP Parse error: syntax error, unexpected '<' in /home/***/***.php on line 26 という2行のエラーが表示されました。 まったく明快な答えは探せませんでした。 もしも少しでも手がかりになるような情報がありましたら教えて下さい。 お願いします。

    • 締切済み
    • PHP
  • ボーダフォン絵文字について

    宜しくお願いします。 phpでボーダフォンのページを作っていますが、ボーダフォンの絵文字を表示するにはどうすれば良いのでしょう??ウェブコードのまま使うと、 『Warning: Unexpected character in input: ''(ASCII=27) state=1 in /home/****/public_html/***/***/***.php on line 4』 というエラーが表示されてしまいます。 どうすれば絵文字を使えるのでしょうか?? 教えてくださいm(__)m

    • ベストアンサー
    • PHP
  • phpの警告

    今こんな警告文に悩まされています。 Warning: Unexpected character in input: ' ' (ASCII=27) state=2 in /var/www/html/client.php on line 24 それでその問題の24行目がこちらです。 print("<table border=2><tr><td>最希望期</td><td>".$saiki."</td></tr> phpの中に記述してあるんですが、 どうしてもこの警告が消えません。 誰か詳しい方がいれば教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 3キャリア携帯の絵文字をユーザーエジェントで制御

    ユーザーエジェントで識別して表示したいと思っているのですが 下記のようなエラーが表示されてしまいます。 Warning: Unexpected character in input: ''(ASCII=27) state=5 in /home/XXXX/XXXX/XXX.php on line 17 エラー箇所 14 elseif( preg_match( "/SoftBank/", $_SERVER['HTTP_USER_AGENT'] ) ) 15 { 16 $heart =<<<eof 17 ←$GB (←は、特殊な矢印です。確認画面で表示されません) 18 eof; 19 } ソフトバンクの絵文字コードが原因だと言うところまでは判りました。 (ソフトバンクの絵文字コードを消してテストしたら正常に表示されました) 僕の判る範囲で修正を試みたのですが一向に改善されません。 どなたか知恵を頂ければと思い投稿させて頂きました。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPのエラー表記についてしつもんです。

    PHPスクリプトを実行すると 如何のようなエラーが表示されます。 Warning: Unexpected character in input: ' ' (ASCII=12) state=0 in /usr/local/apache/htdocs/class.php on line 313 //実際に、エラーのある箇所が以下になります。 //ちょうど【var_dump($this instanceof ParentClass);】が該当するようです。 class ParentClass{ //ParentClass定義内の$this が ParentClass であるかどうかを確認するメソッド public function superCheckThisType(){ print "ParentClassであるかどうか?"; print get_class($this); var_dump($this instanceof ParentClass); } } お分かりになるかた ご教授ください。

    • ベストアンサー
    • PHP
  • PHP 画面設計

    PHPでちょっと遊べるページを作ろうとしています。ですが、スタート画面を作り見に行くとエラーと文字化けだらけとなってしまいます。 <html> (start.php) <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <title>トントン商店です</title> </head> <body> <?php echo<<<EOD <h1>トントン商店です</h1> <ul> <li>御用の方は下にある入口を押してね</li> <li>間違えて来た方は立ち去ってください</li> </ul> EOD; $rand = rand(0, 100); ?> <form action="input.php" method="POST"> <input type="submit" value="入口"/> <input type="hidden" name="rand" value="$rand"/> <input type="hidden" name="count" value="1"/> </body> </html> エラーが、 Warning: Unexpected character in input: ' ' (ASCII=27) state=5 in ~/opening.php on line 9 Notice: Undefined variable: B in ~/opening.php on line 9 Notice: Undefined variable: G in ~/opening.php on line 9 9以外にも11,12にも同じようなのが出ます。 また、乱数を入れたrandを次のページに渡そうとしましたが、次のページに乱数ではなく、$randという文字が表示されてしまいます。文字化けは、 .htmlに変えて少しいじれば直るのですが、rand()関数を使うため.phpでやりたいのですが、どうすればいいかわかりません。 エラーの対処と次のページへの渡し方について、誰か正しい書き方を教えてください。

    • ベストアンサー
    • PHP
  • 漢字や平仮名の文字をSQL実行できません。

    漢字や平仮名の文字をSQL実行できません。 下記のメッセージが出てくるのみで、平仮名が表示されなかったり、??と表示されたり、うまく表示されません。 どうすればよいでしょうか。 おそらく、コードの問題かと思い、php.iniやmy.iniで設定を行っているつもりなのですが、うまくいきません。 下記メッセージと設定内容 Warning: mb_strpos(): Unknown encoding or conversion error. in C:\apachefriends\xampp\phpmyadmin\libraries\string.lib.php on line 100 Warning: mb_strpos(): Unknown encoding or conversion error. in C:\apachefriends\xampp\phpmyadmin\libraries\string.lib.php on line 100 Warning: mb_strpos(): Unknown encoding or conversion error. in C:\apachefriends\xampp\phpmyadmin\libraries\string.lib.php on line 100 実行された SQL クエリー: INSERT INTO member( email, keitai, name, futan ) VALUES( 'ggg@ggg.com', 0, 'A', 100 ) 設定内容は、 my.ini [client] default-character-set=ujis local-infile=1 [mysqld] default-character-set=ujis local-infile=1 set-variable=lower_case_table_names=0 php.ini default_carset="EUC-JP" [mbstring] mbstring.language=Japanese .internal_encoding=EUC-JP .http_input=auto .http_output=EUC-JP .encoding_translation=Off .detect_order=ASCII,SJIS,EUC-JP,JIS,UTF-8 .substitute_character=none;

  • phpファイルを開けない(ブラウザにエラー表示)

    こんにちは! PHPを勉強中なのですが、あるphpファイルをブラウザで開こうとすると 以下のように表示が出てしまい、ファイルが開けません。 ------------エラー文------------------------------------------- Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\hello.php on line 128 --------------------------------------------------------------- これは何が原因のエラーなのでしょうか? 有識者の方いらっしゃいましたらご指導宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 漢字や平仮名の文字をSQLで実行するにはどうすればよいでしょうか。

    先日した質問の仕方が悪かったようなので、再度質問させていただきます。 アルファベット以外の文字を書き込んで実行ボタンを押すと(下の例だと、Aの後ろに「様」といれてます。)、実行された SQL クエリーには「様」が表示されず、結果「N」や「?」というレコードが残ってしまいます。 あと、下記のメッセージが出てくる時もあります。 もしわかる方がいらっしゃれば教えて頂ければ幸いです。 コードの問題かと思い、php.iniやmy.iniで設定を行っているつもりなのですが、うまくいきません。 下記メッセージと設定内容 Warning: mb_strpos(): Unknown encoding or conversion error. in C:\apachefriends\xampp\phpmyadmin\libraries\string.lib.php on line 100 Warning: mb_strpos(): Unknown encoding or conversion error. in C:\apachefriends\xampp\phpmyadmin\libraries\string.lib.php on line 100 Warning: mb_strpos(): Unknown encoding or conversion error. in C:\apachefriends\xampp\phpmyadmin\libraries\string.lib.php on line 100 実行された SQL クエリー: INSERT INTO member( email, keitai, name, futan ) VALUES( 'ggg@ggg.com', 0, 'A', 100 ) 設定内容は、 my.ini [client] default-character-set=ujis local-infile=1 [mysqld] default-character-set=ujis local-infile=1 set-variable=lower_case_table_names=0 php.ini default_carset="EUC-JP" [mbstring] mbstring.language=Japanese .internal_encoding=EUC-JP .http_input=auto .http_output=EUC-JP .encoding_translation=Off .detect_order=ASCII,SJIS,EUC-JP,JIS,UTF-8 .substitute_character=none;

  • サーバーにPHPを拒否されてしまう

    無料HPでPHPの練習をしている初心者です。 PHPファイルをサーバーにアップしてブラウザでみてみると・・・ ------------------------------------------------------------- 今日は、2008/07/26 です☆ Warning: fopen() [function.fopen]: Unable to access count.txt in /home/freeuser/ameyuki/htdocs/test.php on line 19 Warning: fopen(count.txt) [function.fopen]: failed to open stream: No such file or directory in /home/freeuser/ameyuki/htdocs/test.php on line 19 Warning: fgets(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 20 Warning: fseek(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 22 Warning: fputs(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 23 Warning: fclose(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 24 あなたは 1 人目のお客様です。 -------------------------------------------------------------- このような警告ばかりでて、PHPのコマンドが働いていないようなのです。日付は表示されますし、お客様の人数も一応1となっていますが、TOPへ戻ってから再度きても1人なのです。だから働いていないと思うのです。どうしたらPHPのコマンドを受け入れてもらえますか?無料HP、PHP可のところでは無理なのでしょうか? お願いします!

    • ベストアンサー
    • PHP