python - 如何在 Django 中获取阿拉伯字符串的 Unicode 表示?

标签 python django unicode python-2.x

我想知道如何在 Python 中获取阿拉伯字符串的 Unicode 表示形式,例如 سلام

结果应该是\u0633\u0644\u0627\u0645

我需要它以便我可以比较从 mysql 数据库检索的文本和存储在 redis 缓存中的数据。

最佳答案

假设你有一个实际的 Unicode 字符串,你可以这样做

# -*- coding: utf-8 -*-
s = u'سلام'
print s.encode('unicode-escape')    

输出

\u0633\u0644\u0627\u0645

# -*- coding: utf-8 -*- 指令纯粹是告诉解释器源代码是UTF-8编码的,它与脚本本身如何处理无关统一码。


如果您的脚本从 UTF-8 编码源读取阿拉伯字符串,字节将如下所示:

\xd8\xb3\xd9\x84\xd8\xa7\xd9\x85

您可以像这样将其转换为 Unicode:

data = '\xd8\xb3\xd9\x84\xd8\xa7\xd9\x85'
s = data.decode('utf8')
print s
print s.encode('unicode-escape')  

输出

سلام
\u0633\u0644\u0627\u0645

当然,您确实需要确保您的终端设置为正确处理 Unicode。

注意

'\u0633\u0644\u0627\u0645'

是一个包含 24 个字节的普通(字节)字符串,而

u'\u0633\u0644\u0627\u0645'

是一个包含 4 个 Unicode 字符的 Unicode 字符串。

您可能会发现这篇文章很有帮助:Pragmatic Unicode ,由 SO 资深人士 Ned Batchelder 撰写。

关于python - 如何在 Django 中获取阿拉伯字符串的 Unicode 表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40424286/

相关文章:

unicode - Lua 模式和 Unicode

python - IPython 7.0.1 中的多行编辑中断

python - Eclipse - 控制台未显示 Python 代码片段输出

django - 什么是Django最好的CouchDB后端?

python - Django 国际化 : is there a gettext alternative?

python - 统一码编码错误 : 'gbk' codec can't encode character: illegal multibyte sequence

python - 最小化余弦距离 theano

python - isinstance 检查是否有任何变量具有特定的类

django - 通用关系是多对一还是多对多?

language-agnostic - 你精通 Unicode 了吗?