• ベストアンサー

全角 「―」 は、どうやって半角 「-」 に置換するのですか???

全角マイナス(―) を半角(-) に置換したいのですが うまくいきません。 $str ='ABCD―EFG'; $str =~ s/―/-/g; × 実行ストップ $str =~ s/\―/-/g; × 同じく $str =~ s/\―/\-/g; × 一文字ごとに - が入る 'ABCD-EFG' print してこう出てくれば 理想なのです。どうかよろしくお願いします。m(__)m

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

  • ベストアンサー
  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.2

もしかして、SJISで文字を扱ってらっしゃいませんか? 「―」は2バイト文字ですが、その文字コードの2バイト目がメタタグの文字コードと被っています。 その為に違う文字と誤解釈され、正常に動作しなくなってしまうのです。 対策としては、文字コードをEUCにするのが一番手っ取り早いかと思います。

参考URL:
http://www.mirai.ne.jp/~mikeneko/yuibot/yuibot/faq/faq2.html#c4
naru
質問者

補足

ありがとうございます。 おっしゃるとおりだと思います。 早速帰宅したら試してみたいと思います。

その他の回答 (2)

  • gazy
  • ベストアンサー率19% (13/66)
回答No.3

次のようにすれば、とりあえずこのケースだけは解決できると思います。 $str = 'ABCD―EFG'; $str =~ s/―\/-/g;

naru
質問者

補足

回答ありがとうございます。 今すぐにはちょっと試せないのですが、 家に帰ったらさっそくやってみます。 これで解決できたら・・・いいなあ。

  • medi_info
  • ベストアンサー率36% (23/63)
回答No.1

入力した後「F10}のキーをクリックしてみてください。 どうでしょう? できましたか?

naru
質問者

補足

回答ありがとうございます。 すみません、実はよくわかりませんでした。。。 ファンクションキー [F10]を押した後 } を押したりとか 同時押ししてみたりとかいろいろやったんですが・・・

関連するQ&A

専門家に質問してみよう