基本上,我有一个数据库,从中获取
使用Perl脚本,我格式化数据并通过电子邮件发送。由于
没有使用
使用
为什么会这样?我该如何去掉它们?
编辑:
编辑2: 问题不在于终端或标准输出。我使用:
$lastname
、$firstname
、$rid
、$since
、$times
和$ip
。使用Perl脚本,我格式化数据并通过电子邮件发送。由于
$lastname
和$firstname
可能包含特殊字符(例如ä、ü、ß、é等),因此我首先解码这些字符串。my $fullname = decode("utf8", $lastname) . ', ' . decode("utf8", $firstname);
my $send = swrite(<<'END', $ip, $fullname, $rid, $since, $times);
@<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<< @<<<<<<<<<<<<<< @>>END
没有使用
decode
时,特殊字符会变成垃圾字符(如ä变成À),其他部分正常。使用
decode
后,除了包含特殊字符的名称行有几个多余的<
之外,一切都很好。为什么会这样?我该如何去掉它们?
编辑:
swrite
来自perldoc perlform
。sub swrite {
my $format = shift;
$^A = '';
formline($format, @_);
return $^A;
}
编辑2: 问题不在于终端或标准输出。我使用:
use Mail::Sender;
use vars qw($sender);
#...
$sender->MailMsg({to => $mailto,
cc=> "",
bcc => "",
subject => "subject",
msg => $send});
当接收电子邮件时,字符显示得很糟糕。
编辑3:
我获取的数据已经乱码。我得到的是'À'而不是'ä',这就是为什么我的格式失败的原因,因为在使用解码时字符数减少了。
swrite
函数。你是使用来自perldoc perlform
的函数还是其他函数?如果没有这些信息,任何帮助都只会是猜测。 - Chas. Owens