<p>您发送的内容似乎是url对某些字符进行编码的结果,这些字符用<code>cp1254</code>(Windows土耳其语)编码(或非常类似的<code>ISO-8859-9</code>编码)表示。你告诉“appengine”你用的是什么编码吗?在</p>
<p>我们需要更多关于“仍然unicode字符,如”İş嫒“是空白的”的更多信息。当你看着他们的时候,怎么会感到茫然?而不是</p>
<p><code>htmldata = urllib.unquote_plus(self.request.get('mdata'))</code></p>
<p>这样做:</p>
<pre><code>request_data = self.request.get('mdata')
htmldata = urllib.unquote_plus(request_data)
</code></pre>
<p>并编辑您的问题以显示<code>repr(request_data)</code>和{<cd5>}的结果</p>
<p><strong>更新</strong>你说<code>self.request.get('mdata')</code>返回{<cd7>}。。。数据中的非ASCII字符不会返回为空白;它们将被<em>删除</em>。在</p>
<p>有人的代码正在剥离非ASCII字符。类似于<code>your_input.decode(some_encoding, 'ignore')</code>,其中<code>some_encoding</code>设置为<code>ascii</code>或{<cd11>}。在</p>
<p>向我们展示您“告诉appengine我使用的编码(iso-8859-9)”的代码。在</p>
<p><strong>更新2</strong>回应发布的发送代码和这条评论“我正在添加<code># -*- coding: iso-8859-9 -*-</code>到顶部”。在</p>
<p>将“编码”放在源文件的顶部就是告诉Python编译器源文件其余部分的编码。它与数据的编码无关。你可以删除编码,而不是写<code>'mdata' : 'IıışŞşÖÖççç'</code>,你可以写<code>'mdata' : 'I\xFD\xFD etc etc'</code>,得到相同的字节串发送到服务器,效果相同。您已经<strong>没有</strong>告诉appengine您使用的编码。在</p>
<p>而不是</p>
<p><code>"Content-type": "application/x-www-form-urlencoded"</code></p>
<p>我建议你试试这个:</p>
<p><code>"Content-Type": "application/x-www-form-urlencoded; charset:ISO-8859-9;"</code></p>