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="杂谈";文件名是正确的。

这个怎么处理呢?



...全文
85 1 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
iambic 2008-05-09
原文是utf-8的。你可以转换成gb2312的。

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

  • 打赏
  • 举报
回复
相关推荐
发帖
脚本语言

3.7w+

社区成员

JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • ITBOB • 鲍勃
加入社区
帖子事件
创建了帖子
2008-05-09 02:11