龙卷风:'utf-8' 编解码器无法解码字节

tornado: 'utf-8' codec can't decode byte

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

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 个文件。

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

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

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 14: invalid start byte

我认为是因为前端代码中有一些中文单词。

如何解决这个问题?

顺便说一句,我正在使用命令行在远程 CentOS 上工作,但没有桌面。

你试过添加

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

到脚本的顶部? 不确定这是否会解决问题,但尝试一下不会有什么坏处