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


記事No: 8713
投稿日: 2011/07/04(Mon) 11:33:15
タイトルPostmail Ver: 5.53で特定の漢字が文字化け
ID情報: junfs
投稿者: jun-fs
URLhttp://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
URLhttp://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
URLhttp://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');


[検索ページ]