计算MySQL数据库的Unicode字符数

时间:2011-08-30 14:27:45

标签: php mysql unicode

在PHP中,我有变量,它是否保留Unicode字符,我是否需要担心将其存储在MySQL数据库中?

假设我有变量值Dejan Čolić,我想对于Unicode字符将使用2个字符(或4,我不确定)。然后我的变量将是数据库中的13/17个字符长,而不是首先指定的11个字符。我是对的吗?

如果我是对的,是否有一些PHP函数可以帮助计算未来的Unicode字符,以便我可以进行正确的数据验证?感谢。

2 个答案:

答案 0 :(得分:1)

PHP:mb_strlen()
MySQL:CHAR_LENGTH()

答案 1 :(得分:0)

字符是字符。无论环境如何,11个字符均为11个字符。如果MySQL不知道你给它UTF-8编码数据,它可能会错误解释字节并根据错误编码的假设导出不同的字符数。但是如果MySQL知道正确的编码,它将是11个字符

它会比 bytes 更多,因为MySQL存在更多的字节,因为MySQL存储的UTF-8数据相当低效。