我想知道如何在 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/