Python 如何在瓶子框架中呈现阿拉伯语字符串?

Python 如何在瓶子框架中呈现阿拉伯语字符串?,python,utf-8,arabic,bottle,Python,Utf 8,Arabic,Bottle,我正在学习瓶子框架和Python新手。只是偶然发现了这个困难。当我编写一个简单的方法返回一个阿拉伯字符串时,如下所示: @route('/hello') def hello(): return u'سلام' 我在终端中收到此错误消息: SyntaxError:hello.py文件第15行的非ASCII字符“\xd8”, 但未声明编码;看见 详情 我已经从瓶子中导入了所有内容,并尝试添加了中提到的其他方法,其中谈到了“更改默认编码”,但我无法解决这个问题。所以我很感谢你的提示。只需添加

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

@route('/hello')
def hello():
    return u'سلام'
我在终端中收到此错误消息:

SyntaxError:hello.py文件第15行的非ASCII字符“\xd8”, 但未声明编码;看见 详情

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

只需添加

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

在文件顶部

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

#encoding: utf-8

作为脚本顶部文件的第一行,输入以下内容:

# encoding: utf-8

问题是,您的脚本可能使用拉丁1编码(ISO 8859-1)运行,这与UTF-8相比是有限的。以下是我的测试代码:

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

然后下载,并将其与hello.py放在同一文件夹中(例如瓶子测试)

运行它,看起来一点问题都没有

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

要获取此错误消息,您具体怎么做???按照错误消息中的链接进行操作。当我运行脚本:“python hello.py”时,错误会显示在终端中。至少您必须执行一些print hello(),才能获取错误?@rocksportrocker:这是一个框架,不需要“print”来呈现字符串。您可能使用UTF-8(我希望如此). 因此,请编写它,而不是
您使用的任何编码,因为docs瓶子的默认编码是utf-8,而我的编辑器的默认编码也是utf-8。这就是为什么这个问题对我来说如此奇怪的原因。但这不是瓶子的问题,而是Python编译器的问题(它首先得到了文件)。您需要告诉编译器您的文件的编码方式,否则它将假定它是拉丁语-1。语法错误:无效语法。根据文档,Utf-8是默认编码。@qliq:您的问题解决了吗?如果是,您可能应该接受其中一个答案。如果没有,请在评论中详细说明从何处获得SyntaxError?也许在问题本身中提供一个额外的代码片段。也许,但是当您运行脚本时,Python解释器不知道您是否使用IDE或Gedit,当您键入代码时,Gedit使用UTF-8。当你运行脚本,它看到它使用UTF-8时,它会设置它,或者它会使用默认的Latin1(可能不是python3或更多,我不确定)惊人的最佳答案我不知道瓶子框架,很酷很简单:D谢谢