• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

perl去除字符串中的空格有问题

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

淘宝网页中有下面字符:

价  格:

我最开始用perl试图去除中间的空格时用s/\s//g,发现根本没反应。

淘宝的这个空格不是我们想像中的空格!

后来我想是不是编码的问题,因为网页的编码是GBK,而perl默认处理的都是UTF-8,所以转了一下。

iconv -f GBK -t UTF-8 file1 -o file2

将Google香港的Big5编码转换成GBK编码

curl -s http://www.google.com.hk/ | iconv -f big5 -t gbk

依旧没反应。实际上perl在处理字符串时读入内存的时候已统一转换成了UTF-8编码,不需要我们劳神费心,只是把字符串处理完输出的时候又成乱码了。如果你需要输出就手动转换一下,在程序里可以用Encode::from_to或Unicode::MapUTF8::to_utf8,如果你不需要输出就不需要事先转换。

淘宝的这个空格和我们想像中的空格到底有什么区别?

我新建一个文件,把淘宝“价格”之间的那两个空格复制到第一行,查看文件的十六进制编码。

然后第二行自己输了两个空格,再次查看文件的十六进制编码。

淘宝的一个空格用e3 80 80来表示,我的一个空格用20来表示,0a应该代表换行。

那我如何把淘宝的空格去掉呢?直接把淘宝的空格复制到正则表达式中吧:

s/[ \f\t\r\n ]//g


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Centos7安装perl依赖环境库发布时间:2022-07-22
下一篇:
Perl函数集发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap