gpt4 book ai didi

python - 使用 gae python 处理 HTTP POST 中的外来字符

转载 作者:可可西里 更新时间:2023-11-01 17:14:11 25 4
gpt4 key购买 nike

让我感到困惑的是,我有 2 个 HTTP POST 函数,其中一个会打断外来字符,而我只是执行 self.request.POST.get('text') 来获取两者的值功能。我看到的不同之处在于它在中断的地方继承了 blobstoreuploadhandler 因此我怀疑它可能与该更改有关。例如,我不明白为什么 ÅÄÖ 首先起作用,然后我做了一个看似无关的更改,突然间任何非 ASCII 字符都被破坏了。

请帮助我理解 python 应该如何与 unicode 和 utf-8 一起工作。

我有完整的 2 个代码示例,其中一个有效,另一个扭曲了 ÅÄÖ 等外来字符,我只需要知道要更改什么,我认为应该可以进行调整以使其按预期运行。

如果我输入 ÅÄÖ,输出会变成 xcTW,而它应该是 ÅÄÖ,这可能有助于了解问题的确切原因。

提到的2段代码是

class AList(RequestHandler, I18NHandler):
...
a.text = self.request.POST.get('text')

以上作品。然后我改成了

class AList(RequestHandler, I18NHandler, blobstore_handlers.BlobstoreUploadHandler):  
...
a.text = self.request.POST.get('text')

这似乎是唯一的区别。我的 2 个想法是使用同一个应用程序部署 2 个示例,看看是什么真正导致了这个问题,因为它可能在也可能不在我粘贴在这里的代码中。

当本地外来字符按预期工作时,这也只是一个生产问题。

看来是和blobstoreuploadhandler的使用有关,下面通过email重现乱码:

class ContactUploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
message = mail.EmailMessage(sender='admin@myapplicationatappspot.com', subject=self.request.POST.get('subject'))
message.body = ('%s \nhttp://www.myapplicationatappspot.com/') % ( self.request.POST.get('text') )
message.to='info@myapplicationatappspot.com'
message.send()
self.redirect('/service.html')

最佳答案

看起来你遇到了这个错误:http://code.google.com/p/googleappengine/issues/detail?id=2749

作为解决方法,直到它得到修复,您可以使用 JavaScript 在 base64 中对所有输入进行编码。这并不理想,但对我有用。

关于python - 使用 gae python 处理 HTTP POST 中的外来字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com