mysql - UTF-8 的 Varchar?

标签 mysql utf-8 collation varchar multilingual

我找到了一篇关于此的类似帖子,但仍不确定。

当我制作我的留言簿等多语言时,我在 mysql 中将排序规则更改为 uft8_unicode_ci,一切正常,我没有想到的是我使用的类型,我的留言簿是多语言的并且对于名称字段,用户不能输入超过 50 个字符,主题相同,留言簿消息不能超过 800 个字符。

现在在 PHP 中执行此检查很简单,即。在 strlen 等之前使用 mb_ 检查字符串长度。

但我担心数据可能会在 mysql 中被截断。显然普通字符可以,但是当它是汉字和其他非标准字符时,这显然是我的一个问题,因为我不知道 varchar 将如何计算它们。

最佳答案

从 mySQL 4.1 开始,VARCHAR字符而不是字节计数。

您可以安全地为需要包含 255 个字符的消息字段指定 VARCHAR(255) 类型。

关于mysql - UTF-8 的 Varchar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3642542/

相关文章:

到 mysql 服务器的 Java 连接字符串失败

unicode - Python 3 UnicodeEncodeError : 'ascii' codec can't encode characters

c++ - 我正在尝试在 ALLEGRO c++ 中对许多墙进行整理

mysql - 解决mysql中的 "Illegal mix of collations"错误

mysql - SQL Server 到 Mysql 的迁移(使用 Mysql Workbench)。如何在工作台向导的步骤中添加带有手动转义撇号的数据?

php - mysql 获取 assoc VS mysql 获取数组

php - 如何在我的电子邮件模板中使用从数据库中获取的变量值

mysql - 为什么我的 View 是 utf8 以及如何将其更改为 latin1

C# WriteAllBytes 忽略字符编码

java - 使用 Java 进行语言排序(德语)