perl 中如何处理发邮件碰到的 日文问题

kevinfang 2003-10-16 10:15:16
现在有一段采用perl语言写的perl程序,用来发送邮件
但是,现在在收到的邮件中的内容从日文变成了乱码
其中,邮件正文的参数是从表单中获得

我把字符集从UTF-8改成ISO-2020-JP,也不行
这个问题如何处理
大家处处建议


部分代码如下


#open (MAIL,"|$SENDMAIL") || die "Can't Send Email from this server.";
open(MAIL, "| iconv -f UTF-8 -t PCK | $SENDMAIL") || die "Can't Send Email from this server.";
print MAIL "To: $sendto\n";
print MAIL "From: $sendfrom\n";
print MAIL "Subject: Email from Campaign\n";

print MAIL "\n\n";
print MAIL "リクエスト: $FORM{'request'}\n";
print MAIL "希望製品: $FORM{'products_1'}\n";
print MAIL "$FORM{'products_2'}\n";
print MAIL "$FORM{'products_3'}\n";
print MAIL "お名前: $FORM{'name'}\n";
print MAIL "ふりがな: $FORM{'furi'}\n";
print MAIL "E-mail アドレス: $FORM{'email'}\n";
print MAIL "病院名: $FORM{'hospital'}\n";
print MAIL "都道府県: $FORM{'ken'}\n";
print MAIL "住所: $FORM{'address'}\n";
print MAIL "電話番号: $FORM{'phone'}\n";
print MAIL "経路: $FORM{'root'}\n";
print MAIL "コメント: $FORM{'comments'}\n";

close MAIL;
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu22 2003-10-20
  • 打赏
  • 举报
回复
#!/usr/bin/perl

open (MAIL,"|$SENDMAIL") || die "Can't Send Email from this server.";
print MAIL "To: $sendto\n";
print MAIL "From: $sendfrom\n";
print MAIL "Subject: Email from Campaign\n";
print MAIL "Mime-Version: 1.0\n";
print MAIL "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n"; #在这里改字符集
print MAIL "Content-Transfer-Encoding: 8bit\n\n";
print MAIL "$B!Z$*CN$i$;![(B\n\n"; #解码出来是"【お知らせ】",所以内容应该是原生的日文
close (MAIL);

exit;

日文字符集好象有好几种,以下都是
ISO-2022-JP
Shift_JIS
x-euc-jp
x-sjis

如果字符集指定正确,OE应就能正确解码。我用UTF-8试过,将字符集改成UTF-8后发送的邮件OE会用UTF-8解码(的确是乱码,但这跟程序无关,是因为你发送的这些字符都是中文字符,在UTF-8下当然是乱码)。

有几个问题:一,你应该确定你的OS安装了日文字符集,在IE的编码中可以看得到,如果指定按日文解码,但OS中无此字符集,WINDOWS将按默认字符集解码,即简体中文(如果是中文OS的话);二,如果你用中文OS中的软件(比如记事本)中保存了日文,其实这时候就变成了中文字符集,再用日文字符解码就乱了。

上例:如果print MAIL "【お知らせ】",这时候已经是中文字符了,若再用ISO-2022-JP解码就肯定是乱码。所以print的必须是原生的日文,建议在日文OS下写代码。

不知所云,看不懂别怪我!

建议以后多给点分!
sean肖恩 2003-10-20
  • 打赏
  • 举报
回复
关注!顶,我也是有类似问题。日文的字符串处理!
Wolf0403 2003-10-20
  • 打赏
  • 举报
回复
建议:看见日文邮件:删无赦
^_^
kevinfang 2003-10-17
  • 打赏
  • 举报
回复
着个版怎么没有人回答问题呢?
高人,快来指点阿
klbt 2003-10-16
  • 打赏
  • 举报
回复
友情支持,帮你顶。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧