大佬教程收集整理的这篇文章主要介绍了我如何猜测Perl中的字符串的编码?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从输入中删除非ASCII字符。我在一些论坛上发现了这一点
@H_180_4@my $line = encode('ascii',normalize('KD',$myutf),sub {$_[0] = ''});当没有指定输入编码时,上述工作如何工作?应该如此指定吗?
@H_180_4@my $line = encode('ascii',decode($myutf,'input-encoding'),sub {$_[0] = ''});use Encode::Detect::Detector; my $unknown = "\x{54}\x{68}\x{69}\x{73}\x{20}\x{79}\x{65}\x{61}\x{72}\x{20}". "\x{49}\x{20}\x{77}\x{65}\x{6E}\x{74}\x{20}\x{74}\x{6f}\x{20}". "\x{B1}\x{B1}\x{BE}\x{a9}\x{20}\x{50}\x{65}\x{72}\x{6c}\x{20}". "\x{77}\x{6f}\x{72}\x{6b}\x{73}\x{68}\x{6f}\x{70}\x{2E}"; my $encoding_name = Encode::Detect::Detector::detect($unknown); print $encoding_name; # gb18030 use Encode; my $String = decode($encoding_name,$unknown);
我发现编码’ascii’是摆脱非ASCII字符的跛脚解决方案。一切将被问号所取代;这太有用了。
# Bad example; don't do this. use utf8; use Encode; my $String = 'This year I went to 北京 Perl workshop.'; print encode('ascii',$String); # This year I went to ?? Perl workshop.
如果你想要可读的ASCII文本,我建议使用Text::Unidecode。这也是有损编码,但不像上面的纯编码那么可怕。
use utf8; use Text::Unidecode; my $String = 'This year I went to 北京 Perl workshop.'; print unidecode($String); # This year I went to Bei Jing Perl workshop.
但是,如果可以帮助它,请避免这些有损编码。如果以后要反转操作,请选择PERLQQ或XMLCREF中的任何一个。
use utf8; use Encode qw(encode PERLQQ XMLCREF); my $String = 'This year I went to 北京 Perl workshop.'; print encode('ascii',$String,PERLQQ); # This year I went to \x{5317}\x{4eac} Perl workshop. print encode('ascii',XMLCREF); # This year I went to 北京 Perl workshop.
以上是大佬教程为你收集整理的我如何猜测Perl中的字符串的编码?全部内容,希望文章能够帮你解决我如何猜测Perl中的字符串的编码?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。