被 python 的编码问题折腾死了

2016-01-18 18:36:01 +08:00
 Yourdaye

python2.7+ubuntu

用 beautifusoup 来解析一个网页,死活都输出不了中文

什么 encode,decode 试了个遍都不行啊

折腾了一下午.....

有过类似经验的 V 友们给点指导啊!

6626 次点击
所在节点    Python
50 条回复
picasso250
2016-01-19 11:05:55 +08:00
请使用 PHP
fhefh
2016-01-19 11:41:45 +08:00
学习了~~
esile
2016-01-19 12:20:36 +08:00
@flyer103 必须这样玩
XuanYuan
2016-01-19 12:21:37 +08:00
我也是,被 ruby 的编码问题折腾得够呛。

问题是这样子的:
我现在有一个 utf-8 编码的文本,但是需要把它转换成 ASCII 格式,比如说,原来的“生”字要转换成“\u751F ”。

查了很多资料,还是一头雾水。
MemoryCorner
2016-01-19 12:48:00 +08:00
用 Python3, 用 Python3, 用 Python3, 早晚要用的。
cxh116
2016-01-19 15:19:09 +08:00
@XuanYuan 这种在 python 里面叫 "unicode escape"

ruby 可以参考这个 http://stackoverflow.com/questions/5560914/how-do-i-escape-a-unicode-string-with-ruby

puts '你好'.unpack('U*').map{ |i| "\\u" + i.to_s(16).rjust(4, '0') }.join
XuanYuan
2016-01-20 15:03:09 +08:00
@cxh116 已谢!
我是初学,之前还想用 iconv 来解决未果。
XuanYuan
2016-01-20 15:09:10 +08:00
@cxh116 如果只需要转一个句子里面的中文,这个正则应该加在什么地方呢?

比如说,“我是 1 级 VIP ”中只转“我、是、级”。
cxh116
2016-01-20 15:55:03 +08:00
@XuanYuan 用 gsub,自己把下面的正则替换成你自己想要的正则.

puts '你好 123abc'.gsub(/[\W]/){|s| s.unpack('U*').map{|i| "\\u" + i.to_s(16).rjust(4, '0')}.join }

正则可以参考这个
http://apidock.com/rails/v3.0.5/ActiveSupport/JSON/Encoding/escape/class
XuanYuan
2016-01-20 17:26:19 +08:00
收到,谢谢!
我再好好学习一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/251646

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX