GAE unicode字符被编码为utf8字节

2024-04-18 21:59:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的应用程序中,我接受来自用户输入的文本,用户通常会粘贴来自microsoftword的文本。你知道吗

一个很好的例子是撇号',由于某种原因,当在googleappengine中发布到我的处理程序时,它会被转换为=E2=80=99。我已经尝试了许多混乱的方法来防止这种情况,我很高兴简单地删除这些字符,其中一些方法在普通的python中工作,但在appengine中不起作用。你知道吗

以下是我尝试过的一些方法:

problem_string = re.sub(r'[^\x00-\x7F]+','', problem_string)# trying to remove it
problem_string = problem_string.encode( "utf-8" )# desperation...
problem_string = "".join((c if ord(c) < 128 else '' for c in problem_string))# trying to just remove the thing
problem_string = unicode(problem_string, "utf8")# probably fails since its already unicode

。。。在这里,我试图捕获字符串,包括',然后将其作为StringProperty()保存到ndb数据存储中。除最后一个选项外,apsotrophe示例将转换为=E2=80=99。你知道吗

如果我可以保存撇号类型的字符并再次显示它,那将是非常好的,但是简单地删除它也可以满足我的需要。你知道吗

*编辑-以下内容:

experience = re.sub(r'[^\x00-\x7F]+',' ', experience)

在dev服务器上似乎运行良好,并成功地删除了有问题的撇号。你知道吗

还有一个问题可能是POST字段通过blobstore,所以:blobstore_handlers.BlobstoreUploadHandler文件,我认为这可能会引起一些问题。你知道吗

我真的很反对这一点,我真的真的非常感谢一些聪明的堆栈溢出的解释。。。你知道吗


Tags: to方法用户文本restringunicode字符
1条回答
网友
1楼 · 发布于 2024-04-18 21:59:54

好吧,我想我大概找到了一个解决办法。你知道吗

它与blobstore上传处理程序有关,我猜它对unicode进行了适当的编码/解码,以解释奇怪的文件字符。因此,我修改了处理程序,这样图像文件就可以通过google云存储而不是blobstore上传,而且似乎工作正常,即'作为'而不是=E2=80=99进入数据存储

在接下来的几天里我不会接受我自己的答案,也许有人能为未来困惑的人澄清一些事情。你知道吗

相关问题 更多 >