• 締切済み

mb_convert_kana関数を使わず、全角カナを半角カナに変換したいがエラーが出る

http://w1.nirai.ne.jp/freeze/main/file19.html このページの見出し【 「使えない!」 時は作る! 】以下の内容を参考に 全角カナを半角カナに変換するコードを組んでみました。 組んだコードの内容は以下のURLで確認できます。 http://m630.net/code.txt これを実行すると http://m630.net/hankana.php のようにエラーが表示されます。 どうも、"ソ"=>"ソ(半角)", の部分が影響しているようで、これをコメントアウトすると 正常にスクリプトが実行されます。 どうしてエラーになるか、解決策があれば教えてください。 質問中に登場するURLのサーバーのPHPの仕様については、 http://m630.net/info.php をご覧下さい。

みんなの回答

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

5C問題ですね。 とりあえず、shift_jisをやめれば直りますよ。 「ソ」は 835C です。 \ は5Cです。 つまり、 'ソ' と書いたときに。 '85\' という状態。 つまり、 閉じる「'」がエスケープされてしまうんです。 ですから構文エラーとなります。 http://ja.wikipedia.org/wiki/Shift_JIS#2.E3.83.90.E3.82.A4.E3.83.88.E7.9B.AE.E3.81.8C5C.E7.AD.89.E3.81.AB.E6.88.90.E3.82.8A.E3.81.86.E3.82.8B.E3.81.93.E3.81.A8.E3.81.AB.E3.82.88.E3.82.8B.E5.95.8F.E9.A1.8C

emsyk144
質問者

お礼

ご回答ありがとうございます。 5C問題、超参考になりました。 文字コードをUTF-8に変えたら、正常にスクリプトを実行できました。 Shift_JISって面倒なんですね。 勉強になりました。

関連するQ&A