KENT-WEB サポートコーナー 過去ログ [ 0016 ]


記事No: 10203
投稿日: 2012/02/29(Wed) 21:11:36
タイトルclipmailでの文字化け対策方法
ID情報: suga0001
投稿者: suga1969
URLhttp://www.suganamifuton.jp/toiawase-shop.html

お世話になっております。2年ほど前からclipmailを使用させていただいております。最近サイトをリニューアルしまして、clipmailをVer:1.1から現行のVer: 2.62へ変更させていただきました。

設置と動作・メール送信・画像添付送信などは全く問題ないのですが、送信されたメール中で、Ver:1.1では正常に表示できていた機種依存文字「蝓廚文字化けしてしまします。

また、使用目的の特徴として入力者の方がセンチメートルの「cm」を入力することが多いのですが、それが時々(毎回ではなく)「?p」と文字化けします。

(例)15cm×28cm → 15?p×28?p

しかし「cm」と入力して必ず「?p」となるのではなく、自分で入力して試してみても再現性が得られません。(化けてしまっているので最初の入力が「cm」かどうか実際には分からないのですが、おそらく「臓廚任呂覆い隼廚い泙后)

どのように対処すればよろしいでしょうか。どうかよろしくお願いいたします。

(修正追記)
参考になるかどうかわかりませんが関係するかもしれない情報を記入させていただきます。

・init.cgiなどのプログラムで、設定のガイドを付けていただいている以外の中身の部分は手を入れていません。

・サーバーはさくらインターネットのレンタルサーバー

# 文字コード自動判別(0=no 1=yes)
# → フォームの文字コード判別を行う場合
# → フォームがShift_JISの場合は「0」で概ねOK
$cf{conv_code} = 0;
こちらは初期設定の「0」

・「蝓廚世影力すると「??」となり、試しに「蟷葦差務店」と入力したら「?且O浦工務店」となりました。

・プレビューの時点では文字化けしませんが、届いたメールでは文字化けします。

「テスト送信」といったお名前にしていただければ送信を実行いただいたもOKです。

どうかよろしくお願いいたします。


記事No: 10205
投稿日: 2012/03/01(Thu) 17:43:41
タイトルRe: clipmailでの文字化け対策方法
ID情報: teketen
投稿者: てけてん

Unicode::Japanese.pmを使用することによって、文字化けが解消すると思います。
まず、
http://search.cpan.org/~hio/Unicode-Japanese-0.49/
にて、Unicode::Japanese.pmをダウンロードしてください。
tar.gz形式の圧縮ファイルを解凍できるソフトを用意して、解凍してください。
解凍したら、libフォルダの中にUnicodeフォルダがありますので、それをclipmailのlibフォルダに格納して下さい。

次に、clipmail.cgiをテキストエディタなどで開きます。

clipmail.cgi v2.62

407行目付近と355行目付近

Jcode::convert(\$tmp, 'jis', 'sjis');



my $s = Unicode::Japanese->new($tmp,'auto');
$tmp = $s->jis;

に、316行目付近

Jcode::convert(\$resbody, 'jis', 'sjis');



my $s = Unicode::Japanese->new($resbody,'auto');
$resbody = $s->jis;

に、299行目付近

Jcode::convert(\$tbody, 'jis', 'sjis');



my $s = Unicode::Japanese->new($tbody,'auto');
$tbody = $s->jis;

にそれぞれ変更して下さい。
そして、18行目付近

# Jcode宣言
my $j = new Jcode;
の前の行にでも

use Unicode::Japanese qw(PurePerl);

を記述して下さい。
これで、機種依存文字が文字化けする事はないと思います。
もしも、動作に問題があった場合は、元に戻してください。
また、改造は自己責任でお願いします。


# ご指摘戴きましたので、間違えた箇所は修正致しました。失礼しました。
# お役に立ててよかったです。


記事No: 10207
投稿日: 2012/03/01(Thu) 21:42:27
タイトルありがとうございました(一部変更して動作しました)
ID情報: suga0001
投稿者: suga1969
URLhttp://www.suganamifuton.jp/toiawase-shop.html

> 299行目付近
> Jcode::convert(\$tbody, 'jis', 'sjis');
>
> を
>
> my $s = Unicode::Japanese->new($resbody,'auto');
> $resbody = $s->jis;
>
> にそれぞれ変更して下さい。

こちらの「resbody」→「tbody」に変更したら正常に動作し、文字化けも解消いたしました。

かなり困っていましたので、大変助かりました。本当に本当にありがとうございました!


[検索ページ] [掲示板]