最近在用php下的mysqli做一个简单的名单程序。
建立了一个表,其中有个name列,类型为varchar(20)。结果三个汉字的人名。只有前两个字能正常显示,第三个字乱码。
命令行下select,发现汉字全被用utf8十进制明文储存起来了。
于是乎,“你好”被储存成了“你好”,共十六个字符。经查证,后面一串数字是utf8编码。这真是太奇葩了。但是在php里query后得到结果再echo,照样echo出“你好”。
网上查了半天都没说这是啥情况。有知道怎么解决的吗?
另外,试过了mysqli_set_charset('utf8'),没有效果。
目前没有在别的电脑上测试,我的电脑是ubuntu,mysql 5.5.31-0ubuntu0.12.04.2
建立了一个表,其中有个name列,类型为varchar(20)。结果三个汉字的人名。只有前两个字能正常显示,第三个字乱码。
命令行下select,发现汉字全被用utf8十进制明文储存起来了。
于是乎,“你好”被储存成了“你好”,共十六个字符。经查证,后面一串数字是utf8编码。这真是太奇葩了。但是在php里query后得到结果再echo,照样echo出“你好”。
网上查了半天都没说这是啥情况。有知道怎么解决的吗?
另外,试过了mysqli_set_charset('utf8'),没有效果。
目前没有在别的电脑上测试,我的电脑是ubuntu,mysql 5.5.31-0ubuntu0.12.04.2