python 龙卷风:编码和解码大约 url
python tornado: encode and decode about url
我正在用 tornado 构建一个网络服务器。可以搜索关键词得到服务器回复
用户可以输入任何单词,例如中文或日文,所以我知道我应该使用 UTF-8。
这是我的核心代码:
class SearchHandler(tornado.web.RequestHandler):
def get(self, path):
try:
print(self.get_argument('key'))
print(urllib.parse.unquote(self.get_argument('key'))
val = urllib.parse.unquote(self.get_argument('key'))
...
...
现在假设用户搜索了一个中文单词:泰国
两个 print
将给我如下结果:
%E6%B3%B0%E5%9B%BD
泰国
在后端部分,我将使用泰国
。
目前一切正常。
今天我在我的日志中发现了一些奇怪的词:
country-cn.html?æ³°å½content
然后我将它复制到我的浏览器中,它显示如下:
然而,我将日志文件发送到Windows并以txt
打开它,它显示一个中文单词:泰国。
我现在完全糊涂了。我使用我的 PC (Mac OS) 并输入 泰国
来访问我的网络服务器,一切正常。但是好像有人试图用我不知道的特殊编码方式搜索同一个中文单词,所以我无法解码。
一种可能性是某些浏览器会在可能的情况下默认使用非 UTF-8 编码(我不确定这里发生了什么,因为 latin-1
编码最常见)。在您的表单中放置一个隐藏的输入,其中包含一个只能以 UTF-8 表示的字段将强制浏览器使用该编码:
<input name="utf8" type="hidden" value="✓" />
我正在用 tornado 构建一个网络服务器。可以搜索关键词得到服务器回复
用户可以输入任何单词,例如中文或日文,所以我知道我应该使用 UTF-8。
这是我的核心代码:
class SearchHandler(tornado.web.RequestHandler):
def get(self, path):
try:
print(self.get_argument('key'))
print(urllib.parse.unquote(self.get_argument('key'))
val = urllib.parse.unquote(self.get_argument('key'))
...
...
现在假设用户搜索了一个中文单词:泰国
两个 print
将给我如下结果:
%E6%B3%B0%E5%9B%BD
泰国
在后端部分,我将使用泰国
。
目前一切正常。
今天我在我的日志中发现了一些奇怪的词:
country-cn.html?æ³°å½content
然后我将它复制到我的浏览器中,它显示如下:
然而,我将日志文件发送到Windows并以txt
打开它,它显示一个中文单词:泰国。
我现在完全糊涂了。我使用我的 PC (Mac OS) 并输入 泰国
来访问我的网络服务器,一切正常。但是好像有人试图用我不知道的特殊编码方式搜索同一个中文单词,所以我无法解码。
一种可能性是某些浏览器会在可能的情况下默认使用非 UTF-8 编码(我不确定这里发生了什么,因为 latin-1
编码最常见)。在您的表单中放置一个隐藏的输入,其中包含一个只能以 UTF-8 表示的字段将强制浏览器使用该编码:
<input name="utf8" type="hidden" value="✓" />