令人費解的是,我有兩個使用HTTP POST的函數,其中一個可以打破外部字符,我只需要執行self.request.POST.get('text')
即可獲取兩個函數中的值。我看到的區別是,它在什麼地方破壞它繼承blobstoreuploadhandler
因此,我懷疑它可能與這種變化有關。例如,我不明白爲什麼阿諾第一次工作,然後我做了一個看似不相關的變化,突然之間,任何非ASCII字符都被破壞了。在HTTP POST中使用gae python處理外來字符
請幫我理解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個例子,看看究竟是什麼導致了這個問題,因爲它可能會或可能不在我粘貼在這裏的代碼中。
而且,當本地外來字符按預期工作時,這也只是一個生產問題。
似乎由於以下通過電子郵件再現亂碼它關係到blobstoreuploadhandler的用法:
啊哈,已知的bug。補丁爲我工作,我只需將建議的代碼添加到'appengine_config.py',並且現在我的ÅÄÖ的viol現在也可以正確顯示 –