【问题标题】:Will Django always consider an Emoji as 1 character long?Django 是否总是将 Emoji 视为 1 个字符长?
【发布时间】:2022-01-07 11:05:57
【问题描述】:

我正在制作一个使用表情符号作为反应的 Post Reaction 模型,此时我没有将它们映射到选择,而是将 utf-8 值(例如????)直接插入数据库( Postgres) 作为 CharField 实例。 这让我想到我应该对这个字段的 max_length 使用哪个值。我知道 Rust 会将表情符号的长度设为 1 个字符,但我不确定 python 或 Postgres 会如何反应。

【问题讨论】:

  • 很容易测试,不是吗?
  • 不完全是,因为我们有超过 1000 种不同的表情符号...
  • 国旗的表情符号算作两个,所以len('????????')2
  • 哦,我会在这上面留一些余地,可能是 4-5 个字符,谢谢

标签: python django postgresql django-models emoji


【解决方案1】:

PostgreSQL 中character varying 列的长度限制始终以字符而非字节为单位。因此,表情符号将计入长度限制,即 1(如果它们是单个字符)或更多(如果它们包含 zero width joiner)。

【讨论】:

    猜你喜欢
    • 2015-10-10
    • 2020-11-25
    • 2011-10-31
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多