2011-09-09 18 views
5

Şişe çerçevesi ve Python'da yeni öğreniyorum. Bu zorluğa sadece tökezledi. Ben dönmek için basit bir yöntem yazarken Arapça bir dize gibi:Şişe dizisinde Arapça dizgiler nasıl oluşturulur?

SyntaxError: Non-ASCII character '\xd8' in file hello.py on line 15, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Şişeden tüm ithal ve belirtilen diğer yöntemleri ekleyerek çalıştı: Ben terminalde bu hata mesajını almak

@route('/hello') 
def hello(): 
    return u'سلام' 

docs "Varsayılan Kodlamayı Değiştirme" hakkında konuştuğu yer ancak bu sorunu çözemedim. Bu yüzden ipuçlarını takdir ediyorum.

+0

??? – rocksportrocker

+0

hata iletisindeki bağlantıyı izleyin. – JBernardo

+0

Komut dosyasını çalıştırdığımda hatalar terminalde görünür: 'python hello.py' – qliq

cevap

5

sadece utf-8 olarak dosyaya

+0

SyntaxError: geçersiz sözdizimi – qliq

+0

muhtemelen UTF-8 kullanıyorsunuz (umarım öyle olsun). Yani 'ne kodlama olursa olsun' yerine yazınız – JBernardo

+0

Dokümanlara göre Şişenin varsayılan kodlaması utf-8 ve editörün varsayılanı utf-8 de. Bu problemi benim için çok garip kılan budur. – qliq

2

üstünde dosyanızı

# -*- coding: whatever-encoding-you-use -*- 

Kaydet ekleyebilir ve dosyanın ilk satırı olarak

#encoding: utf-8 

eklemek

+0

SyntaxError: geçersiz sözdizimi. Dokümanlara göre Utf-8 varsayılan kodlamadır. – qliq

+1

@qliq: Sorununuzu çözdünüz mü? Eğer evet ise, muhtemelen cevaplardan birini kabul etmelisiniz. Hayır ise, sözdizimi SyntaxError hakkında bir yorumda bulabilirsiniz. _ Belki de kodunuzun kendisinde ek bir kod snippet'i sağlayın. – Helgi

2

Komut dosyanızın üst kısmında şunu girin:

# encoding: utf-8 

şey, sınırlı latin1 kodlama ile aday olabileceğini senaryonuz (ISO 8859-1), ile karşılaştırıldığında UTF-8 İşte

+0

Düzenleyicim gedit, ve varsayılan kodlama utf-8 – qliq

+0

olabilir. Belki de, senaryoyu çalıştırdığınızda, Python Tercüman kodunuzu yazarken UTF-8 kullanan bir IDE veya Gedit kullanıp kullanmadığınızı bilmiyor. Komut dosyasını çalıştırdığınızda ve UTF-8'i kullandığını görürse ya da varsayılan Latin1'i kullanır (belki python3 ve daha fazlası için değil, emin değilim) – HexaGridBrain

7

testleri için benim kodudur:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

from bottle import * 

@route('/hello') 
def hello(): 
    return u'سلام' 

run(host='127.0.0.1', port=8080,reloader=True) 

Editörümde Dosya> Farklı Kaydet ... 'i seçtikten sonra Metin Kodlaması olarak Unicode (UTF-8)' i seçip merhaba.py

olarak kaydedildikten sonra the lastest version of bottle.py from github'u indirip aynı klasöre koyun (ör. biberon-test) merhaba.py

Çalıştırın ve hiç sorun yok gibi görünüyor. Tam olarak bu hata mesajını almak için ne yapayım

~$ python --version 
Python 2.6.7 
~$ cd bottle-test 
bottle-test$ python hello.py 

Result in browser

+0

Şaşırtıcı en iyi cevap şişeyi bilmiyordum çerçeve, çok güzel çok kolay: D teşekkürler شكر لك – ucefkh