数据库和应用程序使用UTF-8字符集,

表中有一个类型为char(2)的字段,

model中,验证规则为:

表单view中条目如下:

而当我仅输入一个汉字时,就得到input errors:

可能把这个汉字按3个char算了,请问如何解决这个问题?

我在MySql中的字段定义就是Char(2)数据库是UTF-8字符集的。这个字段一直存储的也是两个汉字。

没人遇到过这问题吗?

数据库中char(2)是定义了2个字符,即使是两个汉字也算是2个字符,char(2)并非指存储2个字节的数据。而php中的验证,你因该改成’max’=>6php在计算字节长度(而非字符)。

你验证一下,我依稀是这样记得。

加上了,并重启了电脑,问题依然如故。

再设置一句(在我的php.ini中,这句之前是注释掉的):

这回我的汉字都是按照汉字的字符个数来计数了:

感谢大家给我指明了解决问题的方向。