python - 提交多部分/表单数据表单时应用引擎中的编码问题

标签 python google-app-engine character-encoding

我有一个简单的表单,可以将图像和图像的标题提交到 blobstore。 这适用于我的本地开发服务器,但是当我部署我的代码时,标题中的非 ascii 字母会因 ascii 和 hex 的某种混合而出现乱码。例如,Ísland 变成=CDsland。请注意,我正在使用 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">作为标题中的第一个值。 utf-8 也适用于我所有的其他形式。只是变成乱码的多部分形式。不管怎样,这是我的表格:

<form action="{{ uploadurl }}" enctype="multipart/form-data" method="post">
  <div><label>Title</label><input type="text" name="title" class="string" /></div>
  <div><label>Picture</label><input type="file" name="img"/></div>
  <div style="margin-top:10px;"><input type="submit" value="Add picture" /></div>
  <input type="hidden" value="{{ album.key }}" name="alid"/>
</form>

这是处理表单的类:

# handler for posting photos
class PostPhoto(blobstore_handlers.BlobstoreUploadHandler):
    def post(self):
        upload_files =  self.get_uploads('img')
        photourl = images.get_serving_url(str(upload_files[0].key()))
        photo = Photo()
        #because of multipart/form-data
        photo.title = self.request.get("title")
        photo.photourl = photourl
        photo.photoalbum = PhotoAlbum.get(self.request.get('alid'))     
        photo.put()

有人知道我该如何解决这个问题吗?我必须做一些服务器端编码/解码吗?我已经尝试用谷歌搜索但没有结果(python newb),所以这是我改变设计和拆分表格之前的最后一招。

最佳答案

这是一个已知错误。 http://code.google.com/p/googleappengine/issues/detail?id=3761

返回原始数据是一个问题:

>>> import quopri
>>> t = unicode(quopri.decodestring('=CD'), 'iso_8859-2')
>>> print t
Í

关于python - 提交多部分/表单数据表单时应用引擎中的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3624226/

相关文章:

python - 博托 SQS : delete RawMessage

java - 写入 CSV 文件,然后在 Appengine (Java) 中将其压缩

bash - 在 bash 脚本中从 HTML 字符引用更改为 utf-8,即。 ā 变成 ā

python - urllib2 opener 提供了错误的字符集

python - 使用 python 电子邮件发送具有非 ascii 文件名的附件

python - 从 keras.backend.tensorflow_backend 导入 set_session

python - 在 Python 中并行化 for 循环以加快算法速度

python - 如何使用 httpretty/sure 执行 python 测试

java - 如何表示GAME浏览器游戏的棋盘/ map 数据?

java - 在 GAE 上解析完全有效的 XML 时出现 "Content is not allowed in prolog"