Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Windows下在Python2shell中打印unicode字符串?

如何在Windows下在Python2shell中打印unicode字符串?
EN

Stack Overflow用户
提问于 2016-04-20 09:53:35
回答 1查看 480关注 0票数 1

在用Python2.7.11Windows 10中打印诸如欧元、≤,Å,Ω,℃等符号时,我遇到了问题。我期望从空闲运行这段代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print u'\u20AC\u2A7D\u212B\u2126\u2103'

将在屏幕上产生以下输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> ================================ RESTART ================================
>>> 
€⩽ÅΩ℃
>>>

但事实并非如此。我得到了一串古怪的非ascii字符。经过一段时间的挣扎之后,我终于通过设置一个环境变量获得了预期的输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PYTHONIOENCODING=UTF-8

到现在为止还好。我的问题是我无法从Python 获得相同的输出。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> print u'\u20AC\u2A7D\u212B\u2126\u2103'
Ôé¼Ô®¢Ôä½ÔäªÔäâ
>>>

在回答类似的问题时,我尝试了一些解决办法,但都没有成功:

  1. 将代码页从850 (在我的系统中是默认的)更改为65001 (它对应于utf-8 enconding)。
  2. 包装sys.stdout以确保适当的encodingsys.stdout = codecs.getwriter('utf8')(sys.stdout)
  3. 甚至改变了--尽管它被广泛地禁止--默认编码 sys.setdefaultencoding("UTF-8")

所有这些都不适合我。

我的问题有两个:

  • 为什么--如果我从空闲运行print u'\u20AC\u2A7D\u212B\u2126\u2103',输出是€⩽ÅΩ℃ (如预期的那样),而如果我从Python运行这段代码,则输出是不正确的?
  • 有谁有正确地从外壳打印这些符号的提示吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-20 14:00:08

原因:空闲使用tkinter,它封装了tcl/tk GUI框架。Tcl/tk使用unicode字符串,比如Python 3,但它仅限于前2**16个字符(基本的多语言平面BMP)。在Windows上,Python使用命令提示符,它使用的代码页大多限于256个字符。CP65001似乎是一个骗局;加入过去十年未能让它发挥作用的大量人群。(搜索code page 65001。)

提示:除非您将输出限制为工作代码页中的字符,否则请使用空闲运行程序。空闲有一个-r file启动选项。请参阅帮助=>空闲帮助,3.1命令行使用情况。我通常不建议使用空闲来运行已经开发的程序,但是在Windows上运行BMP输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36751544

复制
相关文章
windows下在iis部署django项目
至此,一个不带static静态文件的Django项目就可以在服务器上运行啦!!! 如果你看到页面没有css样式了,应该是找不到静态文件, 那就在url.py中写入
一朵灼灼华
2022/08/05
2.2K0
windows下在iis部署django项目
js --- 中字符串与unicode编码
2、charCodeAt ():在第一个的基础上,返回的是字符的unicode编码
小蔚
2019/09/11
4.9K0
Unicode 字符串
引号前小写的"u"表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:
用户8442333
2021/05/27
1K0
unicode字符串解析
在http接口接收时,很多接口提供方都喜欢把汉字通过unicode的方式传过来,而数字和字母保持不变,就像这样。
逝兮诚
2019/10/30
1.4K0
SharePoint下在Feature中动态Register/Remove HttpModule
在SharePoint开发时,你会遇到这样一个问题,Global.asax去哪儿?怎样添加一个Global.asax?怎样在Application_Start这个事件处理程序里设置初始化?似乎在Visual Studio中无法像纯ASP.NET开发那样轻松添加一个Global.asax。 当然找到这个Global.asax也不难,打开IIS,右键浏览对应网站,在网站根目录下你可以找到Global.asax。比如我的网站部署在C:\inetpub\wwwroot\wss\VirtualDirectories\
用户1161731
2018/01/11
6990
如何在 Python 中将对象打印为字符串?
在 Python 编程中,有时我们需要将对象转换为字符串格式,以便于打印输出、日志记录或数据存储等操作。Python 提供了多种方法来将对象转换为字符串。本文将详细介绍在 Python 中将对象打印为字符串的几种常用方法,并提供示例代码帮助你理解和应用这些方法。
网络技术联盟站
2023/06/07
1.7K0
如何在Windows中运行bash
当微软宣布,将在Windows10上面支持bash时,所有的Unix命令行用户都为之雀跃了。上周三,微软发布了一个测试版本,开始支持了这项功能。 为了运行bash,首先要进行几步操作。首先,需要获得Windows10的build 14316。 安装内测版本之后,用户需要切换到开发者模式,从设置>更新(Settings > Updates),安全>开发者(Security > For Developers)打开新的设置页面,选择“Windows Subsystem for Linux (Beta)”,重启
CSDN技术头条
2018/02/11
3.9K0
如何在Windows中运行bash
Python 中文转Unicode字符串
Python 3.6 代码: # -*- coding: utf-8 -* def to_unicode(string): ret = '' for v in string: ret = ret + hex(ord(v)).upper().replace('0X', '\\u') return ret print(to_unicode("中国")) 输出: "D:\Program Files (x86)\Python36-32\python.exe" E:
py3study
2020/01/13
2.7K0
第九节、Python中Unicode字符串《Python学习》
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122。
申霖
2019/12/27
6950
Java中字符串与Unicode编码互转工具方法
在开发中常常需要从配置文件中读取配置,但是在读取中文时可能会出现乱码,这时可以将中文转为Unicode编码,再读取,然后转码。在Api接口传输数据时也经常用到! 字符串转为Unicode编码 /** * 将字符串转为Unicode编码 * @param string * @return */ public static String encodeUnicode(String string){ StringBuffer unicode = ne
4xx.me
2022/06/09
2.1K0
Windows 字符串处理宏(适应与Unicode及多字节字符集)
如果你进入本文时,若对与 多字节 Unicode ASCII 等这些概念上不清楚的话,请转到如下文章学习: API入门系列之一 -那‘烦人’的Windows数据类型 http://blog.csdn.net/beyondcode/article/details/4015769 API入门系列之二 -Unicode还是ASCII http://blog.csdn.net/beyondcode/article/details/4018731 API入门系列之三 -那迷惑人的Windows字符和字符指针类型 http://blog.csdn.net/beyondcode/article/details/4021085
我与梦想有个约会
2023/10/17
3870
Windows 字符串处理宏(适应与Unicode及多字节字符集)
Pulumi 如何在 Windows 环境中设置
没有安装文件, Pulumi 没有安装文件,所以你不能按照下载后安装的方式来进行配置。
HoneyMoose
2021/05/21
2K0
Pulumi 如何在 Windows 环境中设置
如何在Linux中搭建Windows环境
众所周知,搭建网站最好用是Linux系统,但是有一些Windows软件没法运行在Linux服务器上,就很痛苦
雾海梦曦
2022/11/14
1.5K0
如何在Linux中搭建Windows环境
如何在 Python 中以表格格式打印列表?
在 Python 中,列表是一种常见的数据结构,用于存储和组织数据。当我们需要将列表的内容以表格形式展示时,可以通过特定的方法和技巧来实现。本文将详细介绍如何在 Python 中以表格格式打印列表,以便更好地展示和呈现数据。
网络技术联盟站
2023/06/01
1.6K0
如何在 Python 中反转字符串?
在 Python 中,字符串是 Unicode 字符的序列,尽管 Python 支持许多用于字符串操作的函数,但它没有明确设计用于反转字符串的内置函数或方法。
网络技术联盟站
2022/03/15
2.5K0
[python2]去掉unicode字符串前面的 u
这样,展示出来就是乱码,因为python2默认是unicode,那怎么转换成正常的unicode或str呢
一朵灼灼华
2022/08/05
1.6K0
点击加载更多

相似问题

如何在Windows中调试时在GDB中打印UNICODE字符串?

13

在windows中打印unicode字符

11

如何在PHP中打印unicode字符串

30

如何在Java中打印unicode字符串?

20

如何在Javascript中打印文字unicode字符串?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文