2015-12-13 73 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發佈 - 它的工作原理!它將字符串存儲在希伯來語中。奇怪的是我也檢查數據之前,我把它從應用程序發送 - 它在希伯來語..問題在哪裏? –