初学者,coding 验证 “字符串与编码”时,发现无需加'u'可输出中文。
我记得之前(几个月前)是不行的。搜了一下并未有提及 2.7 支持中文的说法;然后做了一些环境的测试后我凌乱了。
- 有些可以输出
- 有些部分乱码
- 甚至有些会报错(“些”==1 )
测试代码:
# !/usr/bin/python
# -*- coding: utf-u -*-
str = '吃'
print str
print (u'吃')
print u'吃'
输出
****环境 1:Mac****
吃
吃
吃
****window10 - cmd ***
鍚
吃
吃
***windows10 - Git_bash
吃
Traceback (most recent call last):
File "2-stringCode.py", line 14, in <module>
print (u'吃')
UnicodeEncodeError: 'ascii' codec can't encode character u'\u5403' in position 0: ordinal not in range(128)
****window10 - Visual Studio Code 调试器****
吃
吃
吃
我。。。。。凌乱了;
1
binux 2017-11-29 00:55:33 +08:00
老生常谈的问题了,还拿出来问,看着烦。你就不会自己去搜一下吗?
|
2
likuku 2017-11-29 01:14:21 +08:00
2.x 很快就要停止支持了,怎么还不觉悟?
|
3
lhstock OP @binux 我搜了啊。看了一部分是讲 print '吃' 但返回的是 unicode 编码 '\u5403'时应该 print u'吃‘来正确打印出“吃” ;真不知道怎么搜没有 u 直接出来 utf-8 编码;
|
5
yazi 2017-11-29 01:26:30 +08:00
utf-u 是什么
|
6
likuku 2017-11-29 01:33:07 +08:00
win10 的 cmd 默认字符集还是 GBK,得 chcp 65001 才会变成 UTF-8
py2.x 支持处理中文信息(变量 /函数 /类 不能用中文)也不是很难,至少保证下面即可: .py 头放上指定编码的魔法字串: # !/usr/bin/python # -*- coding: utf-8 -*- .py 使用 UTF-8 保存 运行的系统环境 /终端 确保也用 UTF-8,读写的数据库 /文本文件,统统保证是 UTF-8 编码 2.x 没多少日子活了,最好还是直接 3.x |
7
likuku 2017-11-29 01:36:21 +08:00
|
8
ysc3839 2017-11-29 01:47:33 +08:00 via Android 9
你的源文件编码是 UTF-8,所以不加 u 的字符串是 UTF-8 编码的。
Mac: 终端默认编码 UTF-8,所以第一个 print 没问题。 cmd: 终端默认编码 CP936,所以第一个 print 乱码。 Git bash: 终端默认编码是 UTF-8,所以第一个 print 没问题,但是 Python 检测错了,以为终端编码是 ASCII,所以转换时出错。 VSCode: 情况同 Mac。 |
11
IllllI 2017-11-29 10:01:39 +08:00
哎
|
12
Marmot 2017-11-29 10:53:56 +08:00
恼火,早点换 3 把,utf-8 统一世界
|
13
yepinf 2017-11-29 14:50:31 +08:00
试试这
`from __future__ import unicode_literals` |
14
xubeiyan 2017-11-29 16:56:36 +08:00
|
15
likuku 2017-11-29 17:11:43 +08:00
@xubeiyan “ win10 的 cmd 默认字符集还是 GBK,得 chcp 65001 才会变成 UTF-8 ”,这行没看到么?
|