如何在Python中显示非英文字符?

2023-12-14

我有一个 python 字典,其中包含具有非英语字符的项目。当我打印字典时,python shell 无法正确显示非英语字符。我怎样才能解决这个问题?


当您的申请打印出来时hei\xdfen代替heißen,这意味着您实际上并没有打印实际的 unicode 字符串,而是在 unicode 对象的字符串表示形式上打印。

让我们假设您的字符串(“heißen”)存储在名为的变量中text。为了确定您所处的位置,请通过调用以下命令检查该变量的类型:

>>> type(text)

如果你得到<type 'unicode'>,这意味着您处理的不是字符串,而是一个unicode object.

如果您执行直观的操作并尝试通过调用打印到文本print(text)你不会得到实际的文本(“heißen”),而是,unicode 对象的字符串表示形式.

要解决此问题,您需要知道您的终端具有哪种编码,并打印出根据给定编码编码的 unicode 对象.

例如,如果您的终端使用 UTF-8 编码,您可以通过调用以下命令打印出字符串:

text.encode('utf-8')

这是基本概念。现在让我给你一个更详细的例子。假设我们有一个存储字典的源代码文件。喜欢:

mydict = {'heiße': 'heiße', 'äää': 'ööö'}

当您输入时print mydict你会得到{'\xc3\xa4\xc3\xa4\xc3\xa4': '\xc3\xb6\xc3\xb6\xc3\xb6', 'hei\xc3\x9fe': 'hei\xc3\x9fe'}. Even print mydict['äää']不起作用:它会导致类似的结果├Â├Â├Â。通过尝试揭示问题的本质print type(mydict['äää'])这会告诉你,你正在处理一个string object.

为了解决这个问题,您首先需要将源代码文件的字符集的字符串表示形式解码为 un​​icode 对象,然后在终端的字符集中表示它。对于单个字典项目,可以通过以下方式实现:

print unicode(mydict, 'utf-8')

请注意,如果默认编码不适用于您的终端,您需要编写:

print unicode(mydict, 'utf-8').encode('utf-8')

其中外部编码方法根据您的终端指定编码。

我真的强烈建议你读一下乔尔的书“每个软件开发人员绝对必须了解 Unicode 和字符集的绝对最低限度(没有任何借口!)”。除非您了解字符集的工作原理,否则您将一次又一次地遇到类似的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中显示非英文字符? 的相关文章

随机推荐

  • 在原始类类型上忽略显式方法类型参数;编译器错误? [复制]

    这个问题在这里已经有答案了 我在调用具有显式类型参数的泛型方法时收到编译器错误 就好像未考虑显式类型参数一样 最小的例子 class CastExample static class ThingProducer
  • 多个 AND 条件 MySQL

    如何在一个子句中包含多个 AND 条件 喜欢SELECT FROM database WHERE x x y y AND z z我尝试过 但没有成功 谢谢 SELECT FROM table WHERE x x AND y y AND z
  • “人民币”货币符号的 HTML 标签是什么?

    什么 HTML 标签代表中国货币符号 或者有这样的标签吗 我猜你的意思是 的 HTML 实体 yen 方便的参考
  • 比较 bash 脚本中的数字

    我编写了这个脚本来比较 bash 中的 2 个数字 但它给了我一些数字的错误答案 就像如果我给它 2 2 作为输入 它会给我 X 大于 Y bin bash read num1 read num2 if num1 gt num2 then
  • 从 Nib 文件加载自定义表格视图单元

    我目前正在研究苹果文档中的一个示例 但在找到他们正在谈论的一些内容时遇到了一些麻烦 特别是在里面 仔细查看表格视图单元格 gt 从 Nib 文件加载自定义表格视图单元格 Here 我不确定需要设置哪个类 7 在nib文档窗口中选择File
  • 从 DatagridView 创建 Tiff 位图文件

    我想从 Datagridview 创建 Tiff 文件 我能够将 Datagridview 获取到 Tiff 文件 但我只想要行和列 而不需要其他任何东西 不使用第三方工具可以实现吗 Private Sub Form1 Load sende
  • 像钟摆一样旋转布局[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我可以像钟摆一样移动膨胀的布局或对话框或 另一种方式 等吗 膨胀布局包含一些图像视图和文
  • OKHTTP newCall() 调用 REST API 时挂起

    尝试使用 JAVA OKHttp 发布到restAPI 我的代码如下所示 try loggingInterceptor new HttpLoggingInterceptor loggingInterceptor setLevel HttpL
  • CSS - 即使没有足够的内容,也将页脚放在页面底部[重复]

    这个问题在这里已经有答案了 With HTML CSS 我需要得到footer被放置在bottom即使有页面no enough content 如果有大量内容导致滚动 则很容易实现这一点 当内容不足时就会出现问题 因为在这种情况下 页脚会上
  • 基于堆栈的机器依赖于基于寄存器的机器?

    普通 CPU 例如 Android 设备 是基于寄存器的机器 Java虚拟机是一个基于堆栈的机器 但是基于堆栈的机器是否依赖于基于寄存器的机器来工作 基于堆栈的机器不能孤独运行吗 因为它不是操作系统 除了 JVM 之外 还有其他基于堆栈的机
  • Jupyter Notebook:在上一行输出图像

    我想在我的 jupyter 笔记本中并排绘制一些图像 这样可以节省一些展示空间 例如 这是通过 fig plt figure figsize 14 3 ax1 fig add subplot 1 3 1 projection 3d ax2
  • 为什么在控制器上下文之外获取路由值如此困难?

    我不明白这背后是什么意思 为什么这么容易获取内部的路由值Request控制器但几乎不可能做同样的事情HttpContext Current Request 也许我只是不知道更好的方法 但它确实存在 有人可以确认这是在控制器外部获取路线数据的
  • 如何过滤与android room db的一对多关系

    我有一个用户实体和一个记录实体 我想要获取一个列表 其中显示所有用户及其按记录日期过滤的记录列表 然而 我陷入了无法用条件过滤结果的困境 def room version 2 2 5 implementation androidx room
  • matplotlib.pyplot 在相等范围内绘制 x 轴刻度

    我需要根据 x 值序列绘制 y 值序列 x 值在很大范围内变化 pyplot 似乎使用线性 x 轴 所以下面的代码给了我一个不好的数字 def bad plot x 1 2 10 100 1000 y 5 10 6 7 9 plt plot
  • 如何在谷歌应用程序引擎中从 twilio 帮助程序库创建调用

    我正在尝试使用 Google 应用程序引擎创建出站呼叫Twilio Java 帮助程序库 Example private void createcall HttpServletRequest req HttpServletResponse
  • Java注释处理器来分析表达式?

    我一直在尝试 Java 注释处理器 并取得了很好的结果 现在我想做以下事情 据我所知这是不可能的 我有几个实现构建器模式的类 比如说 new FooBuilder doSomething A doSomethingElse B execut
  • Java:XML 到对象(或数组)

    如何将 XML 文档转换为 Java 对象 或数组 我是这样读取 XML 的 DocumentBuilderFactory dFactory DocumentBuilderFactory newInstance DocumentBuilde
  • 将 JS 对象数组存储在 cookie 中,无需插件?

    存储此内容的最佳方式是什么 var mydata 11 Alveston Road Manchester 1 12 Plymouth Street Liverpool 2 放在 cookie 中以便稍后检索 显然 我可以简单地将其全部转换为
  • 修改字符串的函数

    我需要一个函数 它将输入作为字符串 空白 并打印出以下内容 Hello BLANK World 即 world seven 打印出来 Hello seven World 我对如何在 R 中使用字符串感到非常困惑 你想要的功能paste wo
  • 如何在Python中显示非英文字符?

    我有一个 python 字典 其中包含具有非英语字符的项目 当我打印字典时 python shell 无法正确显示非英语字符 我怎样才能解决这个问题 当您的申请打印出来时hei xdfen代替hei en 这意味着您实际上并没有打印实际的