【问题标题】:How to read a unicode file as extended ascii [closed]如何将 unicode 文件读取为扩展 ascii [关闭]
【发布时间】:2013-01-15 20:20:59
【问题描述】:

如果我使用以下内容读取 unicode 文件:

f = open(r'file.txt','rU')
raw = f.read()

如何使文件被读取为扩展 ascii,即将 \xc3\xaa 正确转换为 ê 并将所有不可显示的字符转换为默认字符(比如?)。

我还有以下:

# Create a file called sitecustomize.py in c:\python27\Lib\site-packages.
import sys
sys.setdefaultencoding('iso-8859-1')  

我不确定是否需要更改。

由于某种原因,我无法将 ê 粘贴到 python 控制台(Windows 中的 dos)中,我可以这样做:

>>> s = u'La Pe\xf1a'
>>> print s
La Peña

有人知道怎么做吗?

【问题讨论】:

  • 没有扩展 ASCII 这样的东西。
  • 您在这里涉及到几个不同的问题。我想你需要去阅读Python Unicode HOWTO
  • 此外,控制台中的 Windows 和 unicode 是出了名的不满意。
  • 不要更改默认编码。许多库依赖于默认值。

标签: python unicode


【解决方案1】:

在python2中

import codecs
f = codecs.open('file.txt','rU',encoding='utf8')

在py3中

f = open('file.txt','rU',encoding='utf8')

为了消除混淆,没有“unicode 文件”之类的东西。 Unicode 是一种数学抽象,文件是磁盘上的字节。为了将这些字节转换为 unicode 代码点的内部存储器表示,python 需要知道如何解释它们。这种解释称为“编码”,从您的帖子中您似乎使用“utf8”。所以你必须告诉python。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2022-06-10
    • 2012-11-18
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多