2015-12-13 38 views
1

我一直在努力使这项工作一段时间..让我疯狂。django和postgres - 支持希伯来文

当我尝试发送POST请求到我的django应用程序希伯来文文本时,它将希伯来语文本存储为???????

我想这可能是我的Postgres数据库一个问题,但它的编码是UTF-8,而且,当我手动访问表项,我可以改变文本希伯来语和它的罚款。

我在做什么错?如何用希伯来文发送POST请求并将其成功存储在数据库中?

UPDATE:解决

很显然,我的错误是如此简单,讨厌...

在Android应用中,当你把params,我这样做:

se = new StringEntity(obj.toString()); 

当我更改我的代码并添加了UTF_8时,它解决了问题:

se = new StringEntity(obj.toString(), HTTP.UTF_8); 

只需要添加UTF_8编码..

+0

[在Python中解码和编码希伯来语字符串]的可能重复(http://stackoverflow.com/questions/29850912/decoding-and-encoding-hebrew-string-in-python) – JMzance

回答

0

您是使用python 2还是python 3?在Python 2中,文字字符串不是文字。你必须明确地投下他们为Unicode是这样的:

u'Stuff' 

在这里看到更多的细节Unicode literals that work in python 3 and 2

可以导入从Python 3的一个功能使用这个太

http://python-future.org/unicode_literals.html

这也似乎与您的问题有关:

decoding and encoding Hebrew string in Python

+0

我正在使用python 3.4 –

+1

我将通过运行带有django(./manage.py runserver)的本地服务器来检查,然后从浏览器发送一些示例帖子。然后,您可以打印出您的Django视图在您输入django端点时立即收到的内容,并查看问题是否存在,或者当您将其放入数据库时​​出现问题 – JMzance

+0

谢谢!我认为这有助于..现在发生的事情是:如果我从我的Android应用程序发布到Django - 它将希伯来语字符串存储为????,但 - 我试图从Chrome POSTMAN发布 - 它的工作原理!它将字符串存储在希伯来语中。奇怪的是我也检查数据之前,我把它从应用程序发送 - 它在希伯来语..问题在哪里? –