在perl中编码检测的正确方法

在perl中编码检测的正确方法,第1张

概述我有这两个字符串: %EC%E0%EC%E0+%EC%FB%EB%E0+%F0%E0%EC%F3%D0%BC%D0%B0%D0%BC%D0%B0%20%D0%BC%D1%8B%D0%BB%D0%B0%20%D1%80%D0%B0%D0%BC%D1%83 这是俄语中的网址编码短语,分别为cp-1251和utf-8.我想用perl在我的utf-8终端上用俄语看到它们. 不幸的是,perl模块Enco 我有这两个字符串:

%EC%E0%EC%E0+%EC%FB%EB%E0+%F0%E0%EC%F3%D0%BC%D0%B0%D0%BC%D0%B0%20%D0%BC%D1%8B%D0%BB%D0%B0%20%D1%80%D0%B0%D0%BC%D1%83

这是俄语中的网址编码短语,分别为cp-1251和utf-8.我想用perl在我的utf-8终端上用俄语看到它们.
不幸的是,perl模块Encode :: Detect(在url-deCoding之后)无法检测第一个例子的cp-1251.相反,它提出了这个:“x-euc-tw”.

问题是,在这种情况下检测正确编码的正确方法是什么(使用其他模块指定区域设置参数……)?

解决方法 UTF-8和cp1251只有两种选择吗?让cp1251文本也是有效的UTF-8的几率非常小. (这将是胡言乱语.)所以你可以这样做

use Encode qw( decode );my $decoded = eval { decode('UTF-8',$encoded,Encode::FB_CROAK) }    // decode('cp1251',$encoded);

这将比编码猜测器准确得多.

总结

以上是内存溢出为你收集整理的在perl中编码检测的正确方法全部内容,希望文章能够帮你解决在perl中编码检测的正确方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1260543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存