Python3 是真的比 Python2 爽多了。。

2018-02-13 00:09:01 +08:00
 PureWhite

自己用 Django 写了个后台,Python3 完全不用管字符编码 ,是真的爽。

9026 次点击
所在节点    Python
31 条回复
di94sh
2018-02-13 02:22:31 +08:00
只要吧 Python 的默认编码 asiic 编码换成 utf-8 就好了。
import sys
reload ( sys )
sys.setdefaultcdfing('utf-8')
di94sh
2018-02-13 02:24:23 +08:00
@di94sh 手机打字费劲,,,setdefaultencoding
Dillion
2018-02-13 08:35:49 +08:00
我记得这个方法不是不推荐用么
ctro15547
2018-02-13 09:16:31 +08:00
@di94sh
并不能解决所有问题
yangyaofei
2018-02-13 09:25:11 +08:00
别着急,会出现爸爸的儿子怎么变成你的问题
xavierskip
2018-02-13 09:43:15 +08:00
我告诉你依旧会遇到字符编码的问题。
Rob007
2018-02-13 09:51:48 +08:00
Python2 的字符问题只能缓解,不能根除
laoyur
2018-02-13 09:58:54 +08:00
python 渣路过
如果单纯只是编码问题
py2 里用:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

不是已经能解决大部分问题了么?
beforeuwait
2018-02-13 10:11:16 +08:00
好像是的,我写都不会加 #coding=utf8
Zzde
2018-02-13 10:13:38 +08:00
python3 django 遇到过字符串编码问题,终端疯狂报错,网站 500。
booty
2018-02-13 10:54:08 +08:00
python3 好像还有很多库不支持?
l1093178
2018-02-13 10:55:02 +08:00
@di94sh 你这是在强力作死...
l1093178
2018-02-13 10:55:53 +08:00
@laoyur 有些地方由于解释器本身的限制不能用 unicode,比如异常的错误信息,比如 __all__ 里面导出的符号名称
xiaxiaocao
2018-02-13 11:22:51 +08:00
@laoyur Python2 的编码问题主要是
1. 会做 unicode 和 str 的隐式转换
2. 转换用的不是 UTF8,而是 default local,不同环境表现会不一样

所以在不知不觉间就埋下了各种坑
dexter
2018-02-13 13:07:02 +08:00
low 啊
python 简直一门任性无药可救 又慢又 2B 的语言
ycz0926
2018-02-13 14:45:08 +08:00
如果是 web 开发的话,python 3 ( 3.6 )的 django、tornado 已经支持的很不错了,只遇到过一个阿里 sms 库的兼容问题,不过也在 github 找到了 python 3 的版本
ycz0926
2018-02-13 14:46:31 +08:00
python 3 有一个略繁琐的操作是,往 tonrado 的 socket 中写数据,必须得是 byte 类型的,每次都得 encode 一下
ycz0926
2018-02-13 14:48:22 +08:00
@dexter 目前来说,python 其实可以满足很大一部分的需求了,如果是高并发或者涉及到系统方面的需求,可以考虑 go
ycz0926
2018-02-13 14:50:23 +08:00
@l1093178 你难不成把 class 或 function 写成中文了?😊
laoyuan
2018-02-13 15:04:04 +08:00
Python 3 在 web、爬虫方面的编码问题,我总结如下:

'发' == '\u53d1'
r'发' == '\\u53d1' == json.dumps('发').strip('"')
'发'.encode('unicode-escape') == b'\\u53d1' == r'发'.encode("utf-8")

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

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

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

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

© 2021 V2EX