Skip to main content
 首页 » 编程设计

python之我的 UTF8 字符串中的 Django\u 字符

2025年05月04日32yxwkf

我正在将 UTF-8 数据添加到 Django 中的数据库。

当数据进入数据库时​​,一切看起来都很好 - 字符(例如):“Hello”是 UTF-8 编码的。

我的 MySQL 数据库是 UTF-8 编码的。当我通过选择检查数据库中的数据时,我的示例字符串如下所示:?Hello?。我假设这是将字符显示为 UTF-8 编码。

当我从终端的数据库中选择数据或导出为网络服务时,我的字符串如下所示:\u201cHello World\u201d。

有谁知道如何正确显示我的字符?

我是否需要在某处执行一些额外的 UTF-8 编码?

谢谢, 尼克。

请您参考如下方法:

u'\u201cHello World\u201d' 

是 Unicode 文本 “Hello World” 的正确 Python 表示。智能引号字符使用 \uXXXX 十六进制转义而不是逐字显示,因为将 Unicode 字符写入终端通常会出现问题,尤其是在 Windows 上。 (看起来 MySQL 试图将它们写入终端但失败了,导致 ? 占位符。)

在能够正确输入和输出 Unicode 字符的终端上,您可以确认它们是同一回事:

Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) [GCC 4.4.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> u'\u201cHello World\u201d'==u'“Hello World”' 
True 

就像字节串一样,\x 序列和字符一样:

>>> '\x61'=='a' 
True 

现在,如果您有 \u 或 \x 序列从 Python 转义并进入导出文件,那么您在导出时做错了.也许你在某处错误地使用了 repr()。