Perl中文/unicode/utf8/GB2312编码之间的转换是一件很让人头疼的事情,我总结了以下主要的转换方法,供大家了解参考。
# author: jiangyujie
use utf8;
use Encode;
use URI::Escape;
$/ = "/n";
#从unicode得到utf8编码
$str = '%u6536';
$str =~ s//%u([0-9a-fA-F]{4})/pack("U",hex($1))/eg;
$str = encode( "utf8", $str );
print uc unpack( "H*", $str );
# 从unicode得到gb2312编码
$str = '%u6536';
$str =~ s//%u([0-9a-fA-F]{4})/pack("U",hex($1))/eg;
$str = encode( "gb2312", $str );
print uc unpack( "H*", $str );
# 从中文得到utf8编码
$str = "收";
print uri_escape($str);
# 从utf8编码得到中文
$utf8_str = uri_escape("收");
print uri_unescape($str);
# 从中文得到perl unicode
utf8::decode($str);
@chars = split //, $str;
foreach (@chars) {
printf "%x ", ord($_);
}
# 从中文得到标准unicode
$a = "汉语";
$a = decode( "utf8", $a );
map { print "//u", sprintf( "%x", $_ ) } unpack( "U*", $a );
# 从标准unicode得到中文
$str = '%u6536';
$str =~ s//%u([0-9a-fA-F]{4})/pack("U",hex($1))/eg;
$str = encode( "utf8", $str );
print $str;
# 从perl unicode得到中文
my $unicode = "/x{505c}/x{8f66}";
print encode( "utf8", $unicode );
Perl中文/unicode/utf8/GB2312之间的转换
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
UTF-8 GBK UTF8 GB2312 之间的区别和关系
UTF-8 GBK UTF8 GB2312 之间的区别和关系
UTF-8 GBK UTF8 GB2 -
gb2312编码文件转成utf8
将指定目录directory(包含子目录)下的指定后缀名为suffix的文件,统一从编码格式为fromEncoding更改为toEncoding ,比如gbk到utf-8,或者utf-8到gbk
gbk gb2312 utf-8 休闲 encoding