• 全部
  • 互动交流
  • 文章分享

求助一个法语转化为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";
}
...全文
348 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
相关推荐
发帖
脚本语言
创建于2007-08-27

3.7w+

社区成员

JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
申请成为版主
帖子事件
创建了帖子
2005-11-29 08:26
社区公告

CSDN 脚本语言社区接受专栏投稿(专栏会在顶部创建专属你的栏目),投稿需满足以下要求:

  • 脚本语言技术相关;
  • 文章持续更新,保持活跃;
  • 内容清晰明了,干货为主;
  • 文章排版有序,有条有理。

本社区开通招聘专栏,发布招聘信息请联系版主,发布者需要保证招聘信息真实有效,CSDN 平台和版主不对招聘内容负责!

联系方式:私聊版主、发送邮件、QQ联系等均可: