アプリ版:「スタンプのみでお礼する」機能のリリースについて

Perl5.8で、EUCで保存されたテキストファイルを読み込み、Shift-JISで保存しようとしてます。
EUCからShift-JISへの変換は、Encode.pmを使用しています。
テキストファイルに「髙」(ハシゴ高 0xFCE2)や「﨑」が入っていた場合、変換されたデータは「?」(0x3F)になってしまいます。

「髙」や「﨑」をPerlを使用してEUCからShift-JISする方法はありませんでしょうか?


======================================
use Encode qw/ from_to /;

open IN, "data.txt";
$data = <IN>;
close IN;

from_to( $data, 'euc-jp','shiftjis');

open OUT, ">data2.txt";
print OUT $data;
close OUT;
======================================

宜しくお願いします。

A 回答 (2件)

>Shift-JISの「髙」(0xFBFC ?)に変換したいのですが、どのようにすればよいのでしょうか。



”髙”という文字は、シフトJIS上、\xEEE0と\xFBFCにマッピングされています。
EUC-jpの\xFCE2に相当するのは、領域的には\xEEE0が妥当かと思われます。

ちなみに、nkfで、コード変換すると、\xFCE2 => \xEEE0 で変換されます。

perl標準のencode.pmでがんばるなら、Encode::FB_XMLCREFを使った上で
気に入らない部分を後から、自前コーディングで、気に入るように加工するしか
ないかと思います。
    • good
    • 1
この回答へのお礼

ありがとうございます。
お礼が遅くなってすみません。

jcode.plでも、\xFCE2 => \xEEE0 で変換されました。
特にEncode.pmを使う理由も無いので、jcode.plを使うことにします。

お礼日時:2005/04/02 10:35

下記のサイトが参考になるかと思います。


http://www.kawa.net/works/jcode/uni-escape.html

ちなみに「髙 Perl」のキーワードでYahoo検索してHITした最初のサイトです。
検索を有効利用すればすぐに分かることもあるのでちょっと試してみては如何でしょうか。

参考URL:http://www.kawa.net/works/jcode/uni-escape.html

この回答への補足

ありがとうございます。

教えていただいたサイトは、すでに見ていますが、それでも分からなかったので、ここに質問しました。
すみません、そのことを書いてなかったですね。ごめんなさい。

教えていただいたサイトのようにすると、以下のような結果になります。
from_to( $data, 'euc-jp','shiftjis', Encode::FB_XMLCREF );

【結果】(テキストファイル)
&#x90c4;


Shift-JISの「髙」(0xFBFC ?)に変換したいのですが、どのようにすればよいのでしょうか。

補足日時:2005/03/30 10:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!