使用带有 psycopg3 的 Python 3.9,存储在 Postgres 数据库中的混搭表情符号不会作为单个表情符号返回。例如 返回 \u200d
Mashed-up emojis stored in a Postgres database not returned as single emoji using Python 3.9 with psycopg3. For example returned \u200d
我正在阅读包含来自 Postgres 13 数据库的表情符号的文本。结果是我的 Python/psycopg 查询没有 decode/return 我期望的文本。
通过 Postgres psql
客户端
在 postgres:13
个容器内
select 配置文件中的描述 WHERE id = 123
结果符合预期!
️ and ⚕️
通过 Python 3.9 和 psycopg3 适配器
- 在
python:3.9
个容器内
- 与上面相同的查询
结果未正确重新调整 - 合并失败
>>> cur = conn.cursor()
>>> profiles = cur.fetchone()
>>> profiles[0]
️\u200d and \u200d\u200d⚕️
连接对象说它正在使用 utf-8
>>> conn.info.encoding
'utf-8'
我在这里错过了什么?
知道我应该寻找什么吗?
非常感谢您提前的想法,非常感谢!
欧盟
表情符号由多个字符组成,您使用的shell不知道如何以您想要的方式显示它们。
JosefZ 发布了 link 以获取更多详细信息:https://emojipedia.org/emoji-sequence/
我已经通过原始字节分析了字符串(在评论中提供)。 profiles[0]
变量保存有效字符串。问题仅在于字符串的显示方式,不支持更高级的表情符号(使用 ZWJ \u200d
)。
要获得预览,您可以将内容转储到文本文件并在网络浏览器中打开。
我正在阅读包含来自 Postgres 13 数据库的表情符号的文本。结果是我的 Python/psycopg 查询没有 decode/return 我期望的文本。
通过 Postgres psql
客户端
在
postgres:13
个容器内select 配置文件中的描述 WHERE id = 123
结果符合预期!
️ and ⚕️
通过 Python 3.9 和 psycopg3 适配器
- 在
python:3.9
个容器内 - 与上面相同的查询
结果未正确重新调整 - 合并失败
>>> cur = conn.cursor()
>>> profiles = cur.fetchone()
>>> profiles[0]
️\u200d and \u200d\u200d⚕️
连接对象说它正在使用 utf-8
>>> conn.info.encoding
'utf-8'
我在这里错过了什么?
知道我应该寻找什么吗?
非常感谢您提前的想法,非常感谢! 欧盟
表情符号由多个字符组成,您使用的shell不知道如何以您想要的方式显示它们。
JosefZ 发布了 link 以获取更多详细信息:https://emojipedia.org/emoji-sequence/
我已经通过原始字节分析了字符串(在评论中提供)。 profiles[0]
变量保存有效字符串。问题仅在于字符串的显示方式,不支持更高级的表情符号(使用 ZWJ \u200d
)。
要获得预览,您可以将内容转储到文本文件并在网络浏览器中打开。