【问题标题】:Python console can't deal with Unicode?Python 控制台不能处理 Unicode?
【发布时间】:2015-06-19 04:44:53
【问题描述】:

(我在 Windows 上为此使用 Python 3.4)

所以,我整理了这段代码来更好地展示我的麻烦:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
os.startfile('C:\\téxt.txt')

在 IDLE 上它可以正常工作(它只是打开我指定的那个文件),但在控制台上(双击)它一直说 Windows 找不到该文件。当然,如果我尝试打开“text.txt”,只要它存在,它就可以完美运行。

它慢慢让我发疯。请有人帮助我。

【问题讨论】:

  • Python 可以(尤其是 Python 3),但是您的操作系统及其文件系统存在一些问题。

标签: python windows unicode console


【解决方案1】:

您使用了错误的编码,请尝试使用cp1252 -

# -*- coding: cp1252 -*-

【讨论】:

  • 真是太快了谢谢你,它成功了。我有这种感觉,我自己永远也弄不明白。
  • @Rafael,您应该编辑文件以将其保存为 UTF-8。代码页 1252 只为您提供 250 个字符,而不是 Unicode 的全部范围。
  • @Rafael:不要这样做:它可以解决症状,而不是核心问题。您最初的问题是您已将 utf-8 文本保存为 cp1252。按照@eryksun 的建议,将您的 Python 保存为 utf-8。
  • 我不明白,代码不是在coding: 部分定义的吗?我用utf-8没用,如前所述,有什么遗漏吗?
  • @Rafael: 1. 更改coding 不会神奇地更改文件中的实际字节,它只会更改它们的解释方式:问题是您的代码中的coding 声明位于(它指定一种编码,而文件中实际使用了另一种编码)- 更改 coding 有效,但您应该更改文件本身(从问题中复制粘贴并确保您的编辑器在保存文件时使用 utf-8)2。不相关的:你可以省略coding: utf-8——它在 Python 3 中是默认的
【解决方案2】:

你的文件名是'C:\téext.txt',试试用'C:\text.txt'

【讨论】:

  • OP 已经声明它在使用text.txt 而不是téxt 时工作。
  • @Sky 整个问题是我可能想使用包含 Unicode 的路径,因此更改文件或文件夹名称是最糟糕的解决方法,即使它有效。
猜你喜欢
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
  • 2012-04-20
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多