• ベストアンサー

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

宜しくお願いします。 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