5

我正在学习 Bottle 框架和 Python 新手。只是偶然发现了这个困难。当我编写一个简单的方法来返回一个阿拉伯字符串时,例如:

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

我在终端中收到此错误消息:

SyntaxError:第 15 行文件 hello.py 中的非 ASCII 字符“\xd8”,但未声明编码; 有关详细信息,请参见http://www.python.org/peps/pep-0263.html

我已经从瓶子中导入了所有内容,并尝试添加文档中提到的其他方法, 其中提到了“更改默认编码”,但是我无法解决这个问题。所以我很感激你的提示。

4

4 回答 4

7

Here is my code for testing:

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

In my editor, I choose File > Save As..., then select Unicode (UTF-8) as Text Encoding, and saved as hello.py

Then download the lastest version of bottle.py from github, and put it in the same folder(e.g. bottle-test) with hello.py

Run it, and seems no problems at all.

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

Result in browser

于 2012-03-23T14:03:45.293 回答
5

只需添加

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

在文件的顶部

于 2011-09-09T20:11:20.623 回答
2

将文件另存为 utf-8 并插入

#encoding: utf-8

作为文件的第一行

于 2011-09-09T20:12:36.160 回答
2

在脚本的顶部,输入:

# encoding: utf-8

问题是,您的脚本可能使用 latin1 编码 (ISO 8859-1) 运行,与 UTF-8 相比,这是有限的

于 2011-09-09T20:13:47.160 回答