变音符号
我应该怎么在Python中写“mąka”而不出现错误呢?
我试过 var= u"mąka"
和 var= unicode("mąka")
等等……但都没有用。
我在文档的第一行有设置编码,但还是遇到了这个错误:
'utf8' 编码无法解码位置0的字节0xb1:意外的代码字节
4 个回答
1
你遇到了什么错误呢?
你可以试着把你的源代码文件保存为UTF-8格式,然后在文件的最上面加上这一行:
# coding=utf-8
这行代码是告诉Python,这个文件是以UTF-8格式保存的。
2
这行以 # -- coding: -- 开头的代码必须说明你保存的 源文件 的编码格式。这个错误信息:
'utf8' codec can't decode byte 0xb1 in position 0: unexpected code byte
说明你没有把源文件保存为 UTF-8 格式。你可以用任何支持你在源代码中使用的字符的编码格式来保存你的源文件,只要你知道是什么编码,并且在文件里加上合适的编码声明就可以了。
4
把下面这两行代码保存到 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 的使用示例):
import chardet
print chardet.detect(open('write_mako.py', 'rb').read())
在我的情况下,它输出:
{'confidence': 0.75249999999999995, 'encoding': 'utf-8'}