代码之家  ›  专栏  ›  技术社区  ›  Pierre

比MySQL字段长的中文字符串

  •  0
  • Pierre  · 技术社区  · 10 年前

    我正在使用MySQL和PHP开发一个web应用程序。有些用户是中国人,所以我需要用汉字测试我的程序。由于中文字符比通常的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个字符的字符串“”将被截断。

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

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

    谢谢

    1 回复  |  直到 10 年前
        1
  •  1
  •   albert hou    10 年前

    UTF 8使用一个字符作为英文字符, 但UTF 8使用三个字符作为汉字