我在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')):
有什么不正确吗?
答案 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")