我正在学习Bottle框架和Python新手。只是偶然发现了这个困难。当我写一个简单的方法来返回一个阿拉伯字符串,如:
@route('/hello')
def hello():
return u'سلام'
我在终端中收到此错误消息:
SyntaxError:第15行文件hello.py中的非ASCII字符'\ xd8', 但没有声明编码;见http://www.python.org/peps/pep-0263.html 详情
我已经从瓶子中导入了所有内容并尝试添加docs中提到的其他方法,其中讨论了“更改默认编码”,但我无法解决此问题。所以我很感激你的提示。
答案 0 :(得分: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)
在我的编辑器中,我选择了文件>另存为...,然后选择Unicode(UTF-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
答案 1 :(得分:5)
只需添加
# -*- coding: whatever-encoding-you-use -*-
位于文件顶部
答案 2 :(得分:2)
将文件另存为utf-8并插入
#encoding: utf-8
作为文件的第一行
答案 3 :(得分:2)
在脚本的顶部,输入以下内容:
# encoding: utf-8
问题是,您的脚本可能使用latin1编码(ISO 8859-1)运行,与UTF-8相比这是有限的