如何加强亚洲语言(如中文)的字长?

2024-06-24 11:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Django v1.10和Postgres

有一个datafield可能包含混合符号(例如\ |?),数字,字母,以及亚洲语言字符。在

用户表示此字段的最大值应为15个字符。在

如何使用Django和Postgres作为数据库来实现这一点?在postgres中,我们使用utf-8编码。在

1个字符可以是数字、汉字或英文字母

我知道在PHP中,有一个名为mb_strlen的函数。And in python, the equivalent would be to use unicode strings。在

在Django方法中,执行max string length的最佳方法是什么?在


Tags: django方法用户语言数据库编码字母符号
1条回答
网友
1楼 · 发布于 2024-06-24 11:34:15

首先,你必须从定义字符的含义开始。您提到了韩语,这是许多字符串长度函数误解的语言之一。在

多个unicode字符可用于描述单个字符(用户感知字符),例如:

>>> len(u"한")
3

使用unicode字符串可以很容易地计算unicode字符的数量,但这与用户感知到的字符数不同。我建议阅读这篇关于python text length的文章。在

如果您希望计数unicode字符而不是字符,那么这很简单。只需使用CharFieldmax_length参数(在您的模型和表单上)。在

但是,如果希望将字段限制为最多15个字符,则必须让数据库字段包含更多字符,并为表单创建一些custom validation。在

这类验证器的一个有用的库可能是^{},它可以计算字符串中的字符数。在

相关问题 更多 >