重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

http://rev.go2.jp/MTAmazon.txt
http://www.majordojo.com/projects/MTAmazon/downl …
これなんですが
結論から言えば文字化けしてしまい困っています。

Movable Typeのplug-inなのですが構築すると上記のplug-inで出力した文字列のみが文字化けしないでその他の日本語文字列のみが化けます。

また、上記のplug-inで英数字のみの出力とした場合は正常に動作します。(文字化けしません)

そして、設置するサーバーによって文字化けしなかったり、したりしています。Perlのバージョンの違うサーバーです。

どうやらPerlのせいと言うところまでは突き止めました。

そして、Perlの文字化け関連を漁っているとUTF-8フラグの存在が明らかになりました。

しかし、改造と言っても私に出来るのはコピペぐらいなので適当に先頭にuse utf8;とかplug-inのファイルをutf8エンドコードしてアップしてみたりuse encoding 'utf8';とか書いてみて全部文字化けしちゃったりして・・

でも手応えとしてはUTF-8フラグが問題なのかなという思いは強くしました。use encoding 'utf8';を追加する以外の改造は出力に変化はありませんでした。

# Perl のバージョン: 5.8.3
# Perl のバージョン: 5.8.7
サーバーは上記のPerlのバージョンで正常に動かしたいのです。
http://rev.go2.jp/は5.8.7の方のテスト環境です。出力した文字列以外が文字化けしている様が見られます。
http://rev.go2.jp/MTAmazon.txtはMTAmazon.plだけおいてみました。

よろしくお願いします

A 回答 (2件)

>しかし、改造と言っても私に出来るのはコピペぐらいなので



・・・同じくらいのレベルのわたしですが、
こういうときは
エンコード・デコード関連をひととおり試してます。

-----------------
use Encode;
Encode::from_to($str, "utf8", "shiftjis");
$str = Encode::decode("utf8" ,$str);
$str = Encode::encode("utf8" ,$str);
-----------------

あとは、Jcodeのgetcode使って、文字化けする文字と、文字化けしない文字の文字コードを確認するとか。
utf8::encode($str);
っていう一文を、出力する直前にいれてみるとか。
    • good
    • 0

>出力した文字列のみが文字化けしないでその他の日本語文字列のみが化けます。


使用している文字コードの不整合(例えば、片方はUTF8で片方はEUCというような)ではないかなあ
    • good
    • 0

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