龙卷风:' utf-8'编解码器不能解码字节

时间:2017-05-01 04:18:07

标签: python utf-8 server tornado

我使用python tornado构建一个简单的Web服务器。这是龙卷风的代码:

import json
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from tornado.options import define, options
define("port", default=80, help="run on the given port", type=int)

class IndexHandler(tornado.web.RequestHandler):
        def get(self, param):
            print("\n\nthis is a get request from indexhandler:")
            if param:
                print("param is NOT null")
                self.render(r"frontend/" + param)
            else:
                print("param is null")
                self.render(r"frontend/index.html")

if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application(handlers=[(r"/(.*)", IndexHandler)])
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

所有前端代码都在/frontend目录中,所以我使用了一个简单的正则表达式(.*)来允许用户访问/frontend中的所有资源,例如js文件和css文件

但是,当我尝试访问我的网站时,我无法访问所有资源:
enter image description here

在服务器端,我收到如下错误:

  

UnicodeDecodeError:' utf-8'编解码器不能将字节0xa8解码到位   14:无效的起始字节

我认为这是因为前端代码中有一些中文字。

如何解决这个问题?

是的,我正在使用命令行在远程CentOS上工作,没有桌面。

1 个答案:

答案 0 :(得分:0)

您是否尝试过添加

# -*- coding: UTF-8 -*-

到你的脚本的顶部? 不确定会解决它,但它不会伤害尝试