蟒蛇中文问题

时间:2017-04-24 01:08:44

标签: python unicode

我在python 2.7中有一个中文程序给我一些问题

代码:

# -*- coding: gb2312 -*- 
import sys
command = raw_input(">>> ").decode(sys.stdin.encoding)
if (command == u"你好".encode('utf-8')):
    print "etc"

我收到错误:

test_chinese.py:6:UnicodeWarning:Unicode等同比较无法将两个参数都转换为Unicode - 将它们解释为不相等   if(command == u"����" .encode(' utf-8')):

有什么不正确吗?

1 个答案:

答案 0 :(得分:1)

您不需要encode您的unicode文字:u"你好",所以只需使用:

import sys
command = raw_input(">>> ").decode(sys.stdin.encoding)
if command == u"你好":
    print "etc"

老实说,你应该只使用Python 3.对unicode的支持要好得多。实际上,str现在是unicode点的序列,不像Python 2中的“字节字符串”,它已被更改为bytes数据类型。在Python 3中,您需要做的就是:

command = input(">>> ")
if command == "你好":
    print("etc")