【问题标题】:django and postgres - support hebrewdjango 和 postgres - 支持希伯来语
【发布时间】:2016-03-19 01:05:47
【问题描述】:

一段时间以来,我一直在努力完成这项工作.. 快把我逼疯了。

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

我认为这可能是我的 postgres 数据库 的问题,但它的编码是 UTF-8,而且,当我手动访问表条目时,我可以将文本更改为希伯来语及其罚款。

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

更新:已解决

显然,我的错误是如此简单和烦人......

在 android 应用程序中,当您设置参数时,我这样做了:

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

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

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

只需要添加UTF_8 Encoding..

【问题讨论】:

标签: django postgresql text utf-8 hebrew


【解决方案1】:

你使用的是 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

【讨论】:

  • 我正在使用 python 3.4
  • 我会通过使用 django (./manage.py runserver) 运行本地服务器进行检查,然后从浏览器发送一些示例帖子。然后,您可以在输入 django 端点时立即打印出 Django 视图接收到的内容,并查看问题是否存在,或者当您将其放入数据库时​​是否出现问题
  • 谢谢!我认为这有帮助..现在发生的事情是:如果我从我的 android 应用程序发布到 django - 它将希伯来语字符串存储为 ????,但是 - 我试图从 chrome POSTMAN 发布 - 它有效!它将字符串存储在希伯来语中。奇怪的是,我还在从应用程序发送数据之前检查了数据——它是希伯来语的……问题出在哪里??
  • 我想那么问题是您的 android 应用程序无法编码 utf-8 希伯来语(它可能只是尝试使用普通 ascii)所以它是应用程序而不是您的 Django 项目的问题/你的 postgres 数据库
  • 是的,你是对的:) 查看我更新后的问题与解决方案
猜你喜欢
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
相关资源
最近更新 更多