2013-12-17 45 views
0

Utf-8在我的電腦上不起作用。我在另一臺電腦上嘗試了完全相同的代碼,它工作正常,但在我的電腦上卻沒有。它在python中。編碼:utf-8似乎不起作用

我的程序啓動這樣的:

# -*- coding: utf-8 -*- # Behövs i python 2 för åäö 

from Tkinter import * 

class Kryssruta(Button): 
    """ Knapp som kryssas i/ur när man trycker på den """ 

    def __init__(self, master, nr = 0, rad = 0, kolumn = 0): 
    #Konstruktor, notera master 
     Button.__init__(self,master) 
     self.master = master   
     self.rad = rad 
     self.kolumn = kolumn 
     self.markerad = False 
     self.kryssad = False 
     self.cirklad = False 

     self["command"] = self.kryssa 

    def kryssa(self): 
     if self.markerad==False: 
      self.master.klickat(self) 

在一臺計算機它就像一個魅力,但我自己的電腦上我得到的消息。

SyntaxError: Non-ASCII character '\xc3' in file 'blah' but no encoding declared; 
see http://www.python.org/peps/pep-0263.html for details 

使用PC,在PowerShell中運行。 任何人知道似乎是什麼問題?

+0

該文件實際上是UTF-8編碼的嗎? –

+1

無法重現。我複製粘貼你的文件,它不會*由於在python2和3中的編碼而給出任何錯誤。 – Bakuriu

+2

你使用的是什麼版本的Python?而且,錯誤信息是精確的複製粘貼,還是隻是一個近似值? –

回答

1

您聲明源文件使用的是utf-8編碼,但事實上並非如此,它使用的是系統默認的Windows代碼頁。

在記事本中打開文件並使用另存爲,在編碼下拉菜單中設置UTF-8再次保存。

+1

它看起來是''\ xc3 \ xa4''是utf8編碼的字符。 – alko

+0

@alko,''\ xc3''在最可能的代碼頁中是'',它不會出現在源代碼中。另外''ö''是''\ xc3 \ xb6''。那麼你可能是正確的。 –

+0

另外,''\ xC3''在DOS代碼頁437和850中是'├',在舊的Macintosh編碼中是'√'。這些也不會出現在源代碼中。 – dan04

4

您有一條(數量)空行,在coding:行之上。從the document listed in the error message

要定義源代碼的編碼中,魔術註釋必須 被放置到源文件或者作爲該文件中的第一或第二 線,如:

+0

在寫我的答案之前,我應該注意到錯誤消息中的「沒有編碼聲明」。我相信你是對的。 –