如何在Bottle框架中呈现阿拉伯字符串?

时间:2011-09-09 20:00:54

标签: python utf-8 arabic bottle

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

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

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

  

SyntaxError:第15行文件hello.py中的非ASCII字符'\ xd8',   但没有声明编码;见http://www.python.org/peps/pep-0263.html   详情

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

4 个答案:

答案 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 

Result in browser

答案 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相比这是有限的