我应该如何在Python中编写“mąka”而没有异常?变音符号
我试过var= u"mąka"
和var= unicode("mąka")
等..没有什么帮助
我已经在我的文档编码在第一线的定义,仍然我有一个例外:
'utf8' codec can't decode byte 0xb1 in position 0: unexpected code byte
我应该如何在Python中编写“mąka”而没有异常?变音符号
我试过var= u"mąka"
和var= unicode("mąka")
等..没有什么帮助
我已经在我的文档编码在第一线的定义,仍然我有一个例外:
'utf8' codec can't decode byte 0xb1 in position 0: unexpected code byte
什么异常你会得到吗?
您可以尝试保存您的源代码文件为UTF-8,并把这个在文件的顶部:
# coding=utf-8
这告诉Python保存为UTF-8的文件的。
此代码对我的作品,将文件保存为UTF-8:
v = u"mąka"
print repr(v)
我得到的输出是:
u'm\u0105ka'
请复制并粘贴您得到确切的错误。如果您收到此错误:
UnicodeEncodeError: 'charmap' codec can't encode character ... in position ...: character maps to <undefined>
然后你想输出的字符的地方,不支持UTF-8(例如你的shell的字符编码设置为UTF-8以外的东西)。
的# - - 编码: - - 行必须指定源文件保存在编码此错误消息:
'utf8' codec can't decode byte 0xb1 in position 0: unexpected code byte
表明你是不是节省UTF源文件。 -8。您可以将源文件保存为任何支持您在源代码中使用的字符的编码,只要确保知道它是什么并且有合适的编码线即可。
你可能是对的。 Driego应该尝试用SOURCE文件将utf-8替换为'sys.getdefaultencoding()'值 – mykhal 2009-12-22 21:55:54
保存以下两行到write_mako.py
:
# -*- encoding: utf-8 -*-
open(u"mąka.txt", 'w').write("mąka\n")
运行:
$ python write_mako.py
mąka.txt
文件,其中包含mąka
应在当前目录中创建了字。
如果它不工作,那么你可以使用chardet
来检测该文件的实际编码(见chardet example usage):
import chardet
print chardet.detect(open('write_mako.py', 'rb').read())
对我来说,它打印:
{'confidence': 0.75249999999999995, 'encoding': 'utf-8'}
chardet? – 2009-12-22 21:56:26
绝望的时代和所有。 – 2009-12-22 22:39:34
@John:是的,OP问题很可能是源文件编码与'' - * - encoding:''行不符。 – jfs 2009-12-22 22:39:50
我: # - * - coding:utf-8 - * - 它有什么区别吗? 但是,当我改变它时,仍然没有发生什么...... – Driego 2009-12-22 17:59:01
这需要是文件中的第一行或第二行,每个PEP 0263(http://www.python.org/dev/peps/pep -0263 /)。此外,如果您仍然遇到异常情况,请指定它是哪种异常情况,以便尝试和提供帮助。 – 2009-12-22 18:03:36