比 MySQL 字段长的一串汉字

String of Chinese characters longer that MySQL field

我正在使用 MySQL 和 PHP 开发网络应用程序。有些用户是中国人,所以我需要用汉字测试我的程序。由于中文字符比通常的 ASCII 字符长,因此 MySQL 字段可能比包含中文字符的字符串短。

我试图将输入中的长度限制为比 MySQL 字段小两倍,如下例所示:

<input name='field_name' maxlength='5'> in HTML
field_name VARCHAR(10) in MySQL (all my field are encoded with utf8_unicode_ci)

然而,有5个字符的字符串'好好好'将被截断。

这是一个重要的问题,因为截断的字符串以符号“�”结尾并且 jQuery ajax 调用 (json) 拒绝错误。

这就是为什么我想知道如何在客户端和服务器端保护这些输入,以便数据的完整性在任何情况下都不会受到影响(或者至少即使被截断也不会显示)。

谢谢!

UTF 8 对英文字符使用一个字符, 但是 UTF 8 对汉字使用三个字符