perl打印汉字的问题

辉歌 2008-05-09 02:11:31
大哥好。

还是从html抽取文字的问题。现在抽取出来的文字,如果是中文,打印到屏幕上,是这样的:
[] [鐧借瘽鏉傛枃]
[*][2006-04-02 22:05:52] 蹇呰鐨勬皯鏃忎富涔夛紝鍗曠函銆佽8闇插湴闂

if ($c =~ m!<div class="articleTitle">.*?</div>!s) {
($title, $date) = parseTitleDate($&);
}
if ($c =~ m!<div class="articleTag">.*?</div>!s) {
($tag, $category) = parseTagCategory($&);
}
if ($c =~ m!<div id="articleBody".*?</div>!s) {
$body = parseBody($&);
}

if ( !$category )
{
$category="杂谈";
}
open(BODYFILE,">>$category.txt");
print BODYFILE "[*][$date] $title\n[$tag] [$category]\n";
print BODYFILE "$body\n=================================================================================\n\n";
print "[*][$date] $title\n[$tag] [$category]\n";
close(BODYFILE);

但是如果我运行时重定向到一个文本文件,显示的就是对的。

同样地,以变量名做文件名,结果文件名也是乱码。
但是手动赋值的 $category="杂谈";文件名是正确的。

这个怎么处理呢?



...全文
57 点赞 收藏 1
写回复
1 条回复
iambic 2008年05月09日
原文是utf-8的。你可以转换成gb2312的。

use Encode;
$c = encode('gb2312', decode('utf-8', $c));

回复 点赞
发动态
发帖子
脚本语言(Perl/Python)
创建于2007-08-27

1.5w+

社区成员

3.3w+

社区内容

其他开发语言 脚本语言(Perl ,Python)
社区公告
暂无公告