python - 如何在Python中调用raw_input()正确显示中文字符串?

标签 python unicode encoding utf-8

我正在尝试解决中文编码问题。到目前为止,我面前的唯一障碍是正确显示用户在 raw_input() 中输入的内容。例如,我关于这部分的抽象解决方案是这样的:

#coding: utf-8
name_a = raw_input('请输入文字')
print name_a

但是这样我只能正确显示“请输入文字”。如果用户在 raw_input() 中输入中文字符,则打印 name_a 将显示 utf-8 代码点,如 '/xb7'

无论如何,我在网上搜索了一下,发现这段代码可以解决我的问题:

#coding: utf-8

n=raw_input(unicode('请输入文字','utf-8').encode('gbk'))
print n 

成功了!但是当我尝试将它植入我自己的代码中时。我的代码无法执行。而且更奇怪的事情发生了。后来当我将此代码复制到其他空文件中时,它也无法工作。眨眼间程序就结束了(我知道Windows环境下python的特性,所以在文件末尾添加了x = input())。后来我删除了包含第二个代码段的原始测试py文件。现在我无法在任何新创建的文件中执行它。

我在Windows XP环境下使用Python 2.7

发生了什么?

还有其他方法可以帮助我显示用户在 raw_input() 中输入的中文内容吗?

非常感谢。

最佳答案

这对我有用:

x = raw_input(u'请输入文字'.encode("utf8"))

此外,我成功地能够 print(x) 并让它显示中文字符,因此这可能是您遇到的操作系统(或终端客户端)字体渲染问题。



旁注:切勿在 Python 2.x 中使用 input()。它隐式地evals用户输入的所有数据(input() == eval(raw_input())),所以类似于 __import__("os").system("rm -rf/*") 将删除运行 Python 脚本的计算机的硬盘驱动器。

关于python - 如何在Python中调用raw_input()正确显示中文字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20965391/

相关文章:

python - 使用JQ从CloudFormation.template.json中删除 block

PHP mb_substr 划分错误 utf 8

php - 具有 XPath 编码问题的 DOMDocument。 [?] 很多测试

unicode - GB18030 与 Unicode 有何不同?

unicode - 将 Unicode 代码点转换为 UTF-8 序列

java - 如何将阿拉伯语单词保存到oracle数据库中?

Java:如何从 inputStream 获取编码?

python - 了解 Linux Mint 中的扭曲安装

python - 如何从数据框列中提取与列表的精确匹配?

Python:使用 YAML 自动创建类方法