变音符号

时间:2009-12-22 17:16:51

标签: python django unicode

我应该如何在Python中编写“mąka”而没有例外?

我已尝试var= u"mąka"var= unicode("mąka")等......没有任何帮助

我的文档第一行有编码定义,但我仍然有例外:

  

'utf8'编解码器无法解码位置0中的字节0xb1:意外的代码字节

4 个答案:

答案 0 :(得分:4)

将以下2行保存到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'}

答案 1 :(得分:2)

# - - 编码: - - 行必须指定保存源文件的编码。此错误消息:

'utf8' codec can't decode byte 0xb1 in position 0: unexpected code byte

表示您没有以UTF-8保存源文件。您可以将源文件保存为支持源代码中使用的字符的任何编码,只需确保您知道它是什么并具有适当的编码行。

答案 2 :(得分:1)

你有什么例外?

您可以尝试将源代码文件保存为UTF-8,并将其放在文件的顶部:

# coding=utf-8

告诉Python该文件保存为UTF-8。

答案 3 :(得分:1)

此代码适用于我,将文件保存为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以外的字符)。