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

qli*_*liq 5 python utf-8 arabic bottle

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

@route('/hello')
def hello():
    return u'????'
Run Code Online (Sandbox Code Playgroud)

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

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

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

Nia*_*ang 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)
Run Code Online (Sandbox Code Playgroud)

在我的编辑器中,我选择File> Save As ...,然后选择Unicode(UTF-8)作为文本编码,并保存为hello.py

然后从github下载最新版本的bottle.py,并使用hello.py将其放在同一个文件夹中(例如瓶子测试)

运行它,似乎没有任何问题.

~$ python --version
Python 2.6.7
~$ cd bottle-test
bottle-test$ python hello.py 
Run Code Online (Sandbox Code Playgroud)

结果在浏览器中


JBe*_*rdo 5

加上

# -*- coding: whatever-encoding-you-use -*-
Run Code Online (Sandbox Code Playgroud)

在您的文件的顶部

  • 这不是一个关于Bottle的问题,它是Python编译器的问题(首先在文件中拍摄).你需要告诉编译器你的文件是什么编码,否则它会假设它是Latin-1. (2认同)