2011-09-09 13 views
5

मैं बोतल ढांचे और पाइथन के लिए नया सीख रहा हूँ। बस इस कठिनाई पर ठोकर खाई। जब मैं वापस जाने के लिए एक सरल विधि लिखना एक अरबी स्ट्रिंग की तरह एक:बोतल ढांचे में अरबी तारों को कैसे प्रस्तुत किया जाए?

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

मैं बोतल से सभी आयात किया है और अन्य तरीकों में वर्णित जोड़ने की कोशिश की:

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

मैं टर्मिनल में इस त्रुटि संदेश मिलता है docs जहां यह "डिफ़ॉल्ट एन्कोडिंग बदलना" के बारे में बात करता है, हालांकि मैं इस मुद्दे को हल करने में असमर्थ था। तो मैं आपके संकेतों की सराहना करता हूं।

+0

क्या आप वास्तव में इस त्रुटि संदेश प्राप्त करने के लिए क्या करते हो ??? – rocksportrocker

+0

त्रुटि संदेश में दिए गए लिंक का पालन करें। – JBernardo

+0

जब मैं स्क्रिप्ट चलाता हूं तो टर्मिनल में त्रुटियां दिखाई देती हैं: 'python hello.py' – qliq

उत्तर

5

सिर्फ utf-8 के रूप में अपनी फ़ाइल आपकी फ़ाइल

+0

सिंटेक्स त्रुटि: अमान्य वाक्यविन्यास – qliq

+0

आप शायद यूटीएफ -8 (मुझे उम्मीद है) का उपयोग करें। तो 'जो भी-एन्कोडिंग-आप-उपयोग' – JBernardo

+0

के बजाय इसे लिखें, दस्तावेज़ों के अनुसार बोतल का डिफ़ॉल्ट एन्कोडिंग utf-8 है और मेरे संपादक का डिफ़ॉल्ट utf-8 भी है। यही कारण है कि इस समस्या को मेरे लिए अजीब बनाते हैं। – qliq

2

के शीर्ष पर

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

जोड़ने को बचाने और अपने फ़ाइल की पहली पंक्ति के रूप में सम्मिलित

#encoding: utf-8 

+0

सिंटेक्स त्रुटि: अमान्य वाक्यविन्यास। दस्तावेज़ Utf-8 के अनुसार डिफ़ॉल्ट एन्कोडिंग है। – qliq

+1

@qliq: क्या आपके पास समस्या हल हो गई है? यदि हां, तो आपको शायद एक जवाब स्वीकार करना चाहिए। यदि नहीं, तो क्या आप कृपया टिप्पणी कर सकते हैं कि आपको एक टिप्पणी में सिंटेक्स त्रुटि क्यों मिलती है? _ शायद प्रश्न में अपने कोड का एक अतिरिक्त स्निपेट प्रदान करें। – Helgi

2

अपनी स्क्रिप्ट के शीर्ष पर, इसे दर्ज करें:

# encoding: utf-8 

बात है, अपनी स्क्रिप्ट latin1 एन्कोडिंग के साथ चला सकता है (आईएसओ 8859-1) है, जो सीमित है की तुलना में UTF-8

+0

मेरा संपादक जीएडिट है, और यह डिफ़ॉल्ट एन्कोडिंग utf-8 – qliq

+0

हो सकता है, लेकिन जब आप स्क्रिप्ट चलाते हैं, तो पाइथन इंटरप्रेटर को पता नहीं है कि आप आईडीई या जीएडिट का उपयोग करते हैं जो यूटीएफ -8 का उपयोग करता है जब आप अपना कोड टाइप करते हैं। जब आप स्क्रिप्ट चलाते हैं और यह देखता है कि यह यूटीएफ -8 का उपयोग करता है तो यह इसे सेट करेगा, या यह डिफ़ॉल्ट लैटिन 1 का उपयोग करेगा (शायद पाइथन 3 और अधिक के लिए नहीं, मुझे यकीन नहीं है) – HexaGridBrain

7

यहां परीक्षण के लिए अपने कोड है:

#!/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) 

मेरे संपादक में, मैं फ़ाइल> सेव एज़ ... चुनता हूं, फिर यूनिकोड (यूटीएफ -8) को टेक्स्ट एन्कोडिंग के रूप में चुनें, और hello.py

फिर the lastest version of bottle.py from github डाउनलोड करें, और इसे उसी फ़ोल्डर में रखें (उदा। बोतल परीक्षण) hello.py

इसे चलाएं, और कोई समस्या नहीं दिखती है।

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

Result in browser

+0

अद्भुत सर्वोत्तम जवाब मुझे बोतल नहीं पता था ढांचा, इतना आसान इतना आसान: डी धन्यवाद شكر لك – ucefkh

संबंधित मुद्दे