我應該如何在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