記事No | : 8713 |
投稿日 | : 2011/07/04(Mon) 11:33:15 |
タイトル | : Postmail Ver: 5.53で特定の漢字が文字化け |
ID情報 | : junfs |
投稿者 | : jun-fs |
URL | : http://www.e-plus.gr.jp/test/inquiry.html |
フォームタグ内で「和田」「名前」「渡辺」などを入力すると文字化けします。
「お名前」など前にひらがなを入れたり、「名」「前」など一文字や「渡辺正敏」だと文字化けしません。
「渡辺渡辺」など文字化けワードを繰り返しても文字化けします。
解決方法を教えてください。
記事No | : 8716 |
投稿日 | : 2011/07/04(Mon) 19:07:25 |
タイトル | : Re: Postmail Ver: 5.53で特定の漢字が文字化け |
ID情報 | : kent |
投稿者 | : KENT |
> フォームタグ内で「和田」「名前」「渡辺」などを入力すると文字化けします。
> 「お名前」など前にひらがなを入れたり、「名」「前」など一文字や「渡辺正敏」だと文字化けしません。
> 「渡辺渡辺」など文字化けワードを繰り返しても文字化けします。
> 解決方法を教えてください。
これは文字数が短すぎるため、Jcode.pmが文字判別を誤ってしまうためでしょう。
応急処置として、以下を修正するとどうなりますか?
postmail.cgi 508行目
■変更前
# コード変換
Jcode::convert(\$key, 'sjis');
Jcode::convert(\$val, 'sjis');
■変更後
# コード変換
Jcode::convert(\$key, 'sjis', 'utf8');
Jcode::convert(\$val, 'sjis', 'utf8');
記事No | : 8728 |
投稿日 | : 2011/07/05(Tue) 09:31:52 |
タイトル | : Re^2: Postmail Ver: 5.53で特定の漢字が文字化け |
ID情報 | : junfs |
投稿者 | : jun-fs |
> > フォームタグ内で「和田」「名前」「渡辺」などを入力すると文字化けします。
> > 「お名前」など前にひらがなを入れたり、「名」「前」など一文字や「渡辺正敏」だと文字化けしません。
> > 「渡辺渡辺」など文字化けワードを繰り返しても文字化けします。
> > 解決方法を教えてください。
>
> これは文字数が短すぎるため、Jcode.pmが文字判別を誤ってしまうためでしょう。
> 応急処置として、以下を修正するとどうなりますか?
>
> postmail.cgi 508行目
> ■変更前
> # コード変換
> Jcode::convert(\$key, 'sjis');
> Jcode::convert(\$val, 'sjis');
>
> ■変更後
> # コード変換
> Jcode::convert(\$key, 'sjis', 'utf8');
> Jcode::convert(\$val, 'sjis', 'utf8');
お返事ありがとうございます。
ブラウザでは化けないようになりましたが、
メールが化けるようになってしまいました。
お手数ですが再度ご教授お願いします。
記事No | : 8729 |
投稿日 | : 2011/07/05(Tue) 11:33:30 |
タイトル | : Re^3: Postmail Ver: 5.53で特定の漢字が文字化け |
ID情報 | : kent |
投稿者 | : KENT |
> お返事ありがとうございます。
> ブラウザでは化けないようになりましたが、
> メールが化けるようになってしまいました。
> お手数ですが再度ご教授お願いします。
これは失礼しました。
次の変更でいいと思います。
postmail.cgi 508行目
■変更前
# コード変換
Jcode::convert(\$key, 'sjis');
Jcode::convert(\$val, 'sjis');
■変更後
# コード変換
#Jcode::convert(\$key, 'sjis');
#Jcode::convert(\$val, 'sjis');
158行目
■変更前
#$$in{$key} =~ s/\0/ /g;
$hidden .= qq|<input type="hidden" name="$key" value="$$in{$key}" />\n|;
# 改行変換
$$in{$key} =~ s/\t/<br \/>/g;
my $tmp = $cell;
if (defined($cf{replace}->{$key})) {
$tmp =~ s/!key!/$cf{replace}->{$key}/;
} else {
$tmp =~ s/!key!/$key/;
}
$tmp =~ s/!val!/$$in{$key}/;
■変更後
my $val = $$in{$key};
Jcode::convert(\$key, 'sjis', 'utf8');
Jcode::convert(\$val, 'sjis', 'utf8');
#$$in{$key} =~ s/\0/ /g;
$hidden .= qq|<input type="hidden" name="$key" value="$val" />\n|;
# 改行変換
$val =~ s/\t/<br \/>/g;
my $tmp = $cell;
if (defined($cf{replace}->{$key})) {
$tmp =~ s/!key!/$cf{replace}->{$key}/;
} else {
$tmp =~ s/!key!/$key/;
}
$tmp =~ s/!val!/$val/;
記事No | : 8733 |
投稿日 | : 2011/07/06(Wed) 09:39:09 |
タイトル | : Re^4: Postmail Ver: 5.53で特定の漢字が文字化け |
ID情報 | : junfs |
投稿者 | : jun-fs |
問題解決しました。
お忙しい中、初心者の稚拙な質問に丁寧に答えていただき
ありがとうございました!!
記事No | : 8804 |
投稿日 | : 2011/07/20(Wed) 17:49:57 |
タイトル | : Postmail Ver: 5.6でも文字化け |
ID情報 | : tama526 |
投稿者 | : tama |
はじめまして。
私の方ではVer.5.6を使用してみたのですが
苗字入力部分だけ漢字・記号混じりの文字に
化けてしまう事象が出ております。
なお、フォームページはUTF-8で作成しております。
フォーム名やそれ以外の入力データ等には
文字化けはありません。
現在正しくは何と書くのかを本人に問い合わせているため
なんという漢字が化けるのかははっきりしないのですが
解決方法がございましたらご教授いただけますでしょうか。
よろしくお願いします。
記事No | : 8811 |
投稿日 | : 2011/07/20(Wed) 22:53:48 |
タイトル | : Re: Postmail Ver: 5.6でも文字化け |
ID情報 | : MITUKI |
投稿者 | : mizuki |
はじめまして。ちょうど、私も同じ状況なので
解決法ではないのですが、確認できている文字化け条件を追記します。
名前入力時に、ひらがなのみの時が多いです。
2文字の”ゆり”4文字の”こういち”は化けます。
3文字の”みゆき”は化けないようです。
漢字やカタカナが混じると化けないように思えましたが
条件によるのかもしれません。
> はじめまして。
>
> 私の方ではVer.5.6を使用してみたのですが
> 苗字入力部分だけ漢字・記号混じりの文字に
> 化けてしまう事象が出ております。
> なお、フォームページはUTF-8で作成しております。
>
> フォーム名やそれ以外の入力データ等には
> 文字化けはありません。
>
> 現在正しくは何と書くのかを本人に問い合わせているため
> なんという漢字が化けるのかははっきりしないのですが
> 解決方法がございましたらご教授いただけますでしょうか。
>
> よろしくお願いします。
記事No | : 8814 |
投稿日 | : 2011/07/21(Thu) 10:39:08 |
タイトル | : Re^2: Postmail Ver: 5.6でも文字化け |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://f43.aaa.livedoor.jp/~sumure/ |
Jcode.pmの代わりにこちらで配布されている文字コード変換ライブラリを使用すれば特定の文字化けに関しては解消されます。
http://www11.atpages.jp/atgamewikibbs/pm/SJIS_UTF8.pm
●文字コード変換ライブラリをコピーしてSJIS_UTF8.pmと言うネームでlibディレクトリにアップ
●postmail.cgi
# モジュール実行
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use lib './lib';
use Jcode;
use SJIS_UTF8; ## 追加
#-----------------------------------------------------------
# フォームデコード
#-----------------------------------------------------------
-- 省略 --
# コード変換
#Jcode::convert(\$key, 'sjis'); ## コメントアウト
#Jcode::convert(\$val, 'sjis'); ## コメントアウト
&SJIS_UTF8::utf82sjis($key); ## 追加
&SJIS_UTF8::utf82sjis($val); ## 追加
記事No | : 8815 |
投稿日 | : 2011/07/21(Thu) 11:19:21 |
タイトル | : Re^3: Postmail Ver: 5.6でも文字化け |
ID情報 | : tama526 |
投稿者 | : tama |
BAL様
コメントありがとうございます。
Jcodeの問題だったんですね…。
変換ライブラリの中を見てみたところ今回の文字化けの原因と思われる漢字があり、
その文字をJcode.pmのまま送信してみたところ同じ文字化けが発生しました。
ご教授いただきましたライブラリを使用するよう変更したところ無事解決しました。
ありがとうございました。
mizuki様
フォローありがとうございます。
私の方はBAL様にご提示いただいた方法で解決いたしました。
記事No | : 8816 |
投稿日 | : 2011/07/21(Thu) 13:19:13 |
タイトル | : Re^4: Postmail Ver: 5.6でも文字化け |
ID情報 | : MITUKI |
投稿者 | : mizuki |
BAL様
ありがとうございます。
こちらでも確認できしだい、報告いたします。
> BAL様
>
> コメントありがとうございます。
> Jcodeの問題だったんですね…。
> 変換ライブラリの中を見てみたところ今回の文字化けの原因と思われる漢字があり、
> その文字をJcode.pmのまま送信してみたところ同じ文字化けが発生しました。
>
> ご教授いただきましたライブラリを使用するよう変更したところ無事解決しました。
> ありがとうございました。
>
>
> mizuki様
>
> フォローありがとうございます。
> 私の方はBAL様にご提示いただいた方法で解決いたしました。
記事No | : 8823 |
投稿日 | : 2011/07/22(Fri) 02:43:05 |
タイトル | : Re^5: Postmail Ver: 5.6でも文字化け |
ID情報 | : MITUKI |
投稿者 | : mizuki |
BAL様、ご教授ありがとうございます。
遅くなりましたが、先ほど確認しましたところ、
Web上の確認画面では、文字化けが解消されていたのですが、
受信のメールが化けるようになりました。
"ゆき"が、"aャ"に、なるなどです。
もしご指導いただけましたら、幸いです。
tama様、わざわざのご返信、ありがとうございます。
そちらは、解決できたようで、何よりです!
> BAL様
>
> ありがとうございます。
>
> こちらでも確認できしだい、報告いたします。
>
> > BAL様
> >
> > コメントありがとうございます。
> > Jcodeの問題だったんですね…。
> > 変換ライブラリの中を見てみたところ今回の文字化けの原因と思われる漢字があり、
> > その文字をJcode.pmのまま送信してみたところ同じ文字化けが発生しました。
> >
> > ご教授いただきましたライブラリを使用するよう変更したところ無事解決しました。
> > ありがとうございました。
> >
> >
> > mizuki様
> >
> > フォローありがとうございます。
> > 私の方はBAL様にご提示いただいた方法で解決いたしました。
記事No | : 8825 |
投稿日 | : 2011/07/22(Fri) 08:15:13 |
タイトル | : Re^6: Postmail Ver: 5.6でも文字化け |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://f43.aaa.livedoor.jp/~sumure/ |
> 遅くなりましたが、先ほど確認しましたところ、
> Web上の確認画面では、文字化けが解消されていたのですが、
> 受信のメールが化けるようになりました。
>
> "ゆき"が、"aャ"に、なるなどです。
> もしご指導いただけましたら、幸いです。
Jcode.pmの代わりにjcode.plを使ってみて文字化けの少ない方にされてはいかかでしょうか。
jcode.plをlibディレクトリにアップ
# 設定ファイル認識
require "./init.cgi";
require "./lib/jcode.pl"; ## 追加
my %cf = &init;
#-----------------------------------------------------------
# 送信実行
#-----------------------------------------------------------
#Jcode::convert(\$tbody, 'jis', 'sjis');
jcode::convert(\$tbody, 'jis', 'sjis');
#Jcode::convert(\$resbody, 'jis', 'sjis');
jcode::convert(\$resbody, 'jis', 'sjis');
#Jcode::convert(\$tmp, 'jis', 'sjis');
jcode::convert(\$tmp, 'jis', 'sjis');
記事No | : 8828 |
投稿日 | : 2011/07/22(Fri) 17:52:41 |
タイトル | : Re^7: Postmail Ver: 5.6でも文字化け |
ID情報 | : MITUKI |
投稿者 | : mizuki |
BAL様、重ねてご教授ありがとうございます。
jcode.plで試してみました。
こちらの方が文字化けは多いですね…。
フォームページの方にも、問題があるかもしれません。
かなり古いページの部分修正になりますので…。
一度、新規にフォームを作って、
どのライブラリが最適か、改めて見てみます。
依頼で作業しているため
結論は依頼主が出しますが、
おかげさまで、状況説明は問題なくできそうです。
分かりやすい検証方法、本当にありがとうございました。
解決しましたら、また報告させていただきます。
> > 遅くなりましたが、先ほど確認しましたところ、
> > Web上の確認画面では、文字化けが解消されていたのですが、
> > 受信のメールが化けるようになりました。
> >
> > "ゆき"が、"aャ"に、なるなどです。
> > もしご指導いただけましたら、幸いです。
>
> Jcode.pmの代わりにjcode.plを使ってみて文字化けの少ない方にされてはいかかでしょうか。
>
> jcode.plをlibディレクトリにアップ
>
> # 設定ファイル認識
> require "./init.cgi";
> require "./lib/jcode.pl"; ## 追加
> my %cf = &init;
>
>
> #-----------------------------------------------------------
> # 送信実行
> #-----------------------------------------------------------
>
> #Jcode::convert(\$tbody, 'jis', 'sjis');
> jcode::convert(\$tbody, 'jis', 'sjis');
>
> #Jcode::convert(\$resbody, 'jis', 'sjis');
> jcode::convert(\$resbody, 'jis', 'sjis');
>
> #Jcode::convert(\$tmp, 'jis', 'sjis');
> jcode::convert(\$tmp, 'jis', 'sjis');