• 締切済み

特殊記号 '―' の扱いについて困っています

はじめまして、PHPにおける特殊記号の取り扱いについて質問させていただきます。 以下の処理を行っているのですが特殊記号'―'(ダッシュ)の扱いで悩んでいます。 1.文字コード'utf-8'のファイル内文字列をget_filecontentsで取得 2.取得文字列を'SJIS'に変換(mb_convert_encoding使用) 3.文字列内に'―'が存在していた場合'?'となってしまう ex)"今日の野球結果 5―6"(文字コードutf-8)  ->SJIS変換後 "今日の野球結果 5?6" 特殊文字'―'を文字コード変換できずに上記のような現象が起こっていると思うのですがこれを回避する方法がありましたらご教示お願いします。

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

どの「ダッシュ」でしょうか   http://ja.wikipedia.org/wiki/%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5_%28%E8%A8%98%E5%8F%B7%29#.E5.85.A8.E8.A7.92.E3.83.80.E3.83.83.E3.82.B7.E3.83.A5.E3.81.AE.E3.83.9E.E3.83.83.E3.83.94.E3.83.B3.E3.82.B0.E5.95.8F.E9.A1.8C 先に他のダッシュに置換しておけばいいように思います。というかこの手の変換はケースバイケースですね。Windows-31J(CP932)に変換すれば化けずに済んだりしませんか?

viola_00
質問者

補足

ご回答ありがとうございます。 「―」 — emダッシュダッシュ(全角) もしくは ― ホリゾンタルバークォーテーションダッシュ だと思います。 1.文字コード'utf-8'のファイル内文字列をget_filecontentsで取得 この後にmb_ereg_replaceなどで文字変換(「―」を「-」)したいのですが、そもそも「―」をPHPソースに記述するとエラーが出てしまいます。 「―」が 「―」なのでこれを利用する方法とかあるのでしょうか。。。

関連するQ&A