求助一个法语转化为UTF8的问题

yanwuhuan 2005-11-29 08:26:28
有个法语的文件,用的是ansi编码(也许不叫这个...),现在要转化为utf8的,请问该如何编写代码?我的转换总是不成功,怪怪的。

有个例子,把0xa8 0xa8,转变成0xc3 0xa8,就算ok了。
这个字母是 è ,他的ansi编码是0xa8 0xa8,utf8是0xc3, 0xa8

代码如下:
use Encode qw/from_to encode decode/;
use encoding 'utf8';
# 为了防止编辑器显示不同而直接用十六进制生成字符串
$a = pack("C*", 0x61, 0xa8, 0xa8, 0x72); # 原始字符串 aèr
dumphex($a);

$a = pack("C*", 0x61, 0xa8, 0xa8, 0x72);
$b = decode("iso-8859-15", $a); # 试过换成iso-8859-1,仍然不成
$a = encode("utf8", $b);
dumphex( $a );

dumphex( pack("C*", 0x61, 0xc3, 0xa8, 0x72) ); # 应当转换为此

sub dumphex
{
my ($str) = @_;
print $str, "\t\t";
foreach (unpack("C*", $str))
{
printf "%lx", ord(chr($_));
print " ";
}
print "\n";
}
...全文
473 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanwuhuan 2006-01-05
  • 打赏
  • 举报
回复
怎么给了分却不算结贴?再想结贴却不行了~
yanwuhuan 2006-01-05
  • 打赏
  • 举报
回复
to swjr:
你说的那种也试验过了,不过都不是正确的结果。正确的结果代码里写出来了。

to cangwu_lee:
这就是我的环境。这几个有关的包都试验过了,不过可惜:(

一直没有解决~不过还是结贴吧。
多谢关注。
cangwu_lee 2005-12-15
  • 打赏
  • 举报
回复
Perl 5.8
encode.pm
swjr 2005-11-30
  • 打赏
  • 举报
回复
为什么我的结果与你的不一致?

>>> unicode('è','iso-8859-1').encode('utf-8')
'\xc2\xa8\xc2\xa8'

你看,我得到的utf-8编码是 \xc2\xa8\xc2\xa8

37,743

社区成员

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

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