2006/06/02(金) [n年前の日記]
#5 [prog] _Q. マッチングに「ー」を使うと以下のようなエラーが出る.間違っていないと思うのですが...
Q. マッチングに「ー」を使うと以下のようなエラーが出る.間違っていないと思うのですが...これが出てしまった。
Unmatched [ in regex; marked by <-- HERE in m/ー <-- HERE / at ****.pl line ***
A. 使用することができない(使用しにくい)文字です.
コンピュータでは各文字に,その文字を表す数値を対応づけて処理します. この文字と数値の対応表のことを「文字コード」といいます. この文字コードは通常複数の種類があり,日本語を扱う場合,主に 「Shift-jis(sjis)」,「EUC-japan」とユニコードのどれかが使用されます. 今回,授業では sjis を用いていますが,「ー」という文字は,sjis という文字コードでは, 81 5C という数値に対応しています.ところがこの「5C」という数値は「\」という特殊な 文字に対応しています.この部分が悪さをしてプログラムが上手く動きません.
sjis → utf8 に変換してから処理をしないといかん、ということだろうな…。
use Encode; $utf8_str = decode("shiftjis", $sjis_str); # sjis -> utf8 $sjis_str = encode("shiftjis", $utf8_str); # utf8 -> sjisとかそんな感じにしてみたり。
[ ツッコむ ]
以上です。