如何解决如何在perl cgi中将包括连字符在内的半角日语字符转换为全角?
我有一个学生信息的CSV输出列表。
my $SrchResult = $TextBookCommonAdmin->GetOrderCSV($SrchData);
my $CsvData = '"受付番号","学籍番号","氏名","フリガナ","〒","都道府県・市区","町村・番地","アパート・マンション名"' . "\r\n";
foreach my $DataId (sort (keys %{$SrchResult})){
foreach my $key (keys %{$DataHash}){
$DataHash->{$key} = decode('utf8',$DataHash->{$key});
}
my $LineData = sprintf('"%s","%s","%s"',$DataHash->{'recptid'},$DataHash->{'student_id'},$DataHash->{'student_name'},$DataHash->{'student_kana'},$DataHash->{'student_zip'},$DataHash->{'student_address'},$DataHash->{'student_address2'},$DataHash->{'student_address3'},);
$CsvData .= sprintf("%s\r\n",$LineData);
}
my ($second,$minute,$hour,$day,$month,$year,@rest) = localtime();
$year += 1900;
$month += 1;
my $TimeStr = sprintf('%4d-%02d-%02d',$day);
my $TimedateFormat = sprintf('%4d%02d%02d%02d%02d%02d',$second);
my $name= $TimedateFormat.".csv";
print "Content-Type: application/octet-stream\n";
print "Content-Disposition: attachment; filename=$name\n\n";
print encode('cp932',$CsvData);
输入数据: 86 | 20A1123032C |内村飒太|ウチムラソウタ| 2130013 |神奈川県| 2-9-4 | スペランサ4-2-9
输出csv: 86 | 20A1123032C |内村飒太|ウチムラソウタ| 2130013 |神奈川県| 2002/9/4 | スペランサ4?2?9
上述示例: 打开Perl CSV文件时,将带连字符的数字转换为日期,并将带连字符的文本转换为?在“ student_address2”和“ student_address3”列中。
也许有日语的半角汉字和全角Zankaku问题。
有什么解决方案可以解决吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。