V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  scriptB0y  ›  全部回复第 31 页 / 共 74 页
回复总数  1464
1 ... 27  28  29  30  31  32  33  34  35  36 ... 74  
2018-03-01 11:47:51 +08:00
回复了 SimbaPeng 创建的主题 Python 问一个让我很困扰的编码问题。
有意思,我昨天刚纠结了这个问题。

unicode-escape 先 encode()然后按照字面 escape 一次。

In [32]: "中国".encode('unicode-escape')
Out[32]: b'\\u4e2d\\u56fd'

In [33]: "中国".encode()
Out[33]: b'\xe4\xb8\xad\xe5\x9b\xbd'

In [34]: len(b'\\u4e2d\\u56fd')
Out[34]: 12

所以你的 r'\u4e2d'.encode('unicode-escape') 实际上是这样:

In [36]: r'\u4e2b'.encode()
Out[36]: b'\\u4e2b'

先 encode()的到了 b'\\u4e2b' , 这个时候得到 6 个 byte, \ u 4 e 2 b,注意只有一个 \ ,前面一个是转义用的。

再按照字面意思就是 \ \ u 4 e 2 b 一共 7 个字符对吧。前面转义的 \ 也被按照字面解释成了一个 \ 。

第一个问题回答完毕。
-----------------------------------


解码问题:

解码的时候,unicode-escape 可能将多个 byte 解释成一个,例如

对于 b'\\\\u4e2d' escape 这一步变成 \\u4e2d,从 7 个字符变成了 6 个。

对于 b'\u005c\u0075\u0034\u0065\u0032\u0064' , 从 36 个变成了 6 个。

再啰嗦一点,前者, 第一个 \ 转义了第二个 \ 结束了。 后者第一个 \ 转义了 u 继续向后直到 \u005c 被解释成 1 个字符。

所以两者 decode('unicode-escape')的结果是一样的。

昨天的帖子: https://www.kawabangga.com/posts/2767
2018-03-01 00:02:16 +08:00
回复了 1500176279 创建的主题 Python 想入门 Python 求大佬们给点建议!!!
2018-02-28 13:16:30 +08:00
回复了 scriptB0y 创建的主题 Python Python3 decode 问题
@Monad 是的,我也是这么想的。
2018-02-28 12:43:10 +08:00
回复了 scriptB0y 创建的主题 Python Python3 decode 问题
@Monad decode('unicode-escape') 的结果是 latin-1 编码的,这是错误的,所以要 encode 回去然后使用正确的 utf-8 decode。

这里文档有说: https://docs.python.org/3/library/codecs.html#python-specific-encodings (搜索 unicode_escape )
2018-02-28 12:31:50 +08:00
回复了 scriptB0y 创建的主题 Python Python3 decode 问题
@Monad 顺着你的思路找了解决方法了!

In [107]: original.encode().decode('unicode-escape').encode('latin1').decode('utf-8')
Out[107]: 'abc→'

太好玩了
2018-02-28 12:20:05 +08:00
回复了 scriptB0y 创建的主题 Python Python3 decode 问题
@Monad str 没有 decode 方法啊。
2018-02-28 11:50:32 +08:00
回复了 scriptB0y 创建的主题 Python Python3 decode 问题
@Thanks 你说的我都知道。我的问题是把 original = "abc\\xe2\\x86\\x92" 转换成 'abc→'
2018-02-28 11:32:03 +08:00
回复了 scriptB0y 创建的主题 Python Python3 decode 问题
@Monad 不行吧。。。

In [87]: eval( '"{}".decode("UTF-8")'.format(original) )
-------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-87-9a50a9092a0f> in <module>()
----> 1 eval( '"{}".decode("UTF-8")'.format(original) )

<string> in <module>()

AttributeError: 'str' object has no attribute 'decode'
2018-02-28 11:03:57 +08:00
回复了 reid2017 创建的主题 程序员 websocket 通信如何保证/确认客户端收到了消息
websocket 是在 tcp 上面的,我觉得可以放心认为发出去的消息一定会被客户端收到吧。

我记得 wensocket 一端发给另一端发不过去会报错的
造博客的轮子其实坑很大,比如 HTML 规范(甚至很新的 AMP ),SEO,各种插件(评论通知,访客统计,标签,分类)等等。做好心理准备。
2018-02-26 13:14:33 +08:00
回复了 caomu 创建的主题 天黑以后 20180226 午夜俱乐部
终于上班了…… 说实话我觉得上班比待在家里有意思的多……
2018-02-26 09:10:35 +08:00
回复了 scriptB0y 创建的主题 问与答 微信虚假的紧急求转发信息背后的产业链?
@manhere 嗯 我就是不明白纯传播的 有啥用
2018-02-25 22:45:45 +08:00
回复了 workwonder 创建的主题 知乎 不想用知乎 APP,但是被绑架了,怎么破?
桌面端的 google 可以查看 google 快照,iOS 目前想到的办法是 google 搜索结果切换到桌面版,然后查看快照。
2018-02-25 22:43:22 +08:00
回复了 workwonder 创建的主题 知乎 不想用知乎 APP,但是被绑架了,怎么破?
@guog ios 不行,说是浏览器版本低
2018-02-25 10:41:39 +08:00
回复了 v2xe2v 创建的主题 问与答 大佬们,上下班要大概三个小时,做什么比较合适?
搬家 +1 三个小时太痛苦了,要不了多久就每天下班累的什么都做不了
2018-02-24 22:39:50 +08:00
回复了 mysparrow 创建的主题 Linux 求助关于服务器流量中转的问题
我也觉得最靠谱的也最简单的是楼上的 iptable,你试试呗
2018-02-24 22:29:40 +08:00
回复了 loongwang 创建的主题 问与答 女生生日,送个 kindle. ok?
我觉得 kindle 比耳坠什么的好多了。

如果她未来有了男朋友,身上还戴着你送的东西,你们三个都很尴尬吧,不再戴了,也很尴尬吧;偷偷戴,这样的话就她自己尴尬了。
同建议删了,这种本来就是冷数据,所有的数据信赖数据库里面的就可以了,ES 保持新鲜的有效数据。
2018-02-14 20:06:38 +08:00
回复了 CatCode 创建的主题 全球工单系统 鹅厂的给我滚出来!
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
1 ... 27  28  29  30  31  32  33  34  35  36 ... 74  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2113 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 04:13 · PVG 12:13 · LAX 21:13 · JFK 00:13
Developed with CodeLauncher
♥ Do have faith in what you're doing.