作者: Bruce.
日時: 2008/1/5(17:22)
Bruce.です。

今年もよろしくお願いいたしまする。

閑舎 writes:

> 
> 早速ですが、Perl v5.8.8 Linux 版にて
> 
> use Jcode;
> 
> $str = "いろいろ機能を使いたい";
> $str = jcode($str)->euc;
> $str =~ s/’/\'/;
> print "$str\n";
> 
> とすると、文字化けします。Jcode.pm は文字コードを明確にするだけのために
> 入れており、要するに Perl の EUC-JP で、シングルクォートを置換しようとす
> るとうまくいかないのはなぜかなということです。

これ、置換対象の文字なんですがこれでまちがいないですか?
#hexdump すると A1 C7 になる文字。

とすると、“いろいろな機能を使いたい”を同様に hexdumpすると

>echo いろいろな機能を使いたい|nkf -S -e |hexdump
00000000: A4 A4 A4 ED A4 A4 A4 ED A4 CA B5 A1 C7 BD A4 F2  $$$m$$$m$J5!G=$r
00000010: BB C8 A4 A4 A4 BF A4 A4 0A                       ;H$$$?$$.

A1 C7 というバイト列が隠れてます。
たぶんこれを置換対象文字とみまちがえて置換してるんじゃないですか?

いじょ。