我应该如何在Python中编写“mąka”而没有例外?
我已尝试var= u"mąka"
和var= unicode("mąka")
等......没有任何帮助
我的文档第一行有编码定义,但我仍然有例外:
'utf8'编解码器无法解码位置0中的字节0xb1:意外的代码字节
答案 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以外的字符)。