在PHP中,我有变量,它是否保留Unicode字符,我是否需要担心将其存储在MySQL数据库中?
假设我有变量值Dejan Čolić
,我想对于Unicode字符将使用2个字符(或4,我不确定)。然后我的变量将是数据库中的13/17个字符长,而不是首先指定的11个字符。我是对的吗?
如果我是对的,是否有一些PHP函数可以帮助计算未来的Unicode字符,以便我可以进行正确的数据验证?感谢。
答案 0 :(得分:1)
PHP:mb_strlen()
MySQL:CHAR_LENGTH()
答案 1 :(得分:0)
字符是字符。无论环境如何,11个字符均为11个字符。如果MySQL不知道你给它UTF-8编码数据,它可能会错误解释字节并根据错误编码的假设导出不同的字符数。但是如果MySQL知道正确的编码,它将是11个字符。
它会比 bytes 更多,因为MySQL存在更多的字节,因为MySQL存储的UTF-8数据相当低效。