- ベストアンサー
何故か表示されない文字について
宜しくお願いします。 phpファイルで、<?php ?>の間で、『ソ』で終るとなぜかエラーが返ってきます。ためしに、テストファイルを作って <? ソ ?> とだけ入力してアクセスしたら、こんな内容のエラーが返ってきました。 Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /****/****/test/test.php on line 2 という内容でした。 どうしてか良く分からないのですが、理由が分かる方お教え下さい。宜しくお願いしますm(__)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
■理由 「ソ」の文字コードがShiftJISの場合、第二バイト目に バックスラッシュ(\)が含まれているから。 ■対処 「ソ\」となどと、後にバックスラッシュ(\)を付加すれば OKです。このような、ShiftJISのダメ文字は「表」など いくつかあります。 ■再現テスト <?="ソ"?> とするとエラーとなるはず。 <?="ソ\"?> とすると、「ソ」と表示されるはず。 ■その他のダメ文字 ―ソЫIX噂浬欺圭構蚕十申曾箪貼能表暴予禄兔 喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭 ※「入力されたテキストに機種依存文字が含まれて いましたので変換させて頂きました。」 と言われ、一部情報が欠落しているかもしれないので注意。
その他の回答 (1)
- trisagion
- ベストアンサー率68% (15/22)
文字コードがShift-JISの場合「ソ」や「表」のような文字は文字化けの原因となります。 Shift-JISは2バイトコードなので2バイト目が「\」と解釈され、次の文字(おそらく改行)がエスケープされるためおきていると思われます。
お礼
ありがとうございます。 なるほどー(^.^)改行コードの一個目の『\』に、ソの二個目の『\』がカブって『\\』状態になって改行の『\』が消されてしまうという事ですね(>_<) やっとスッキリしました!ありがとうございましたm(__)m
お礼
ありがとうございます。 こんなにいっぱいダメな文字があったんですね(T_T) 勉強になりました!ありがとうございましたーm(__)m