wangdachui95345 2017-02-09 07:31 采纳率: 84.6%
浏览 2238
已采纳

Mysql 返回类型总是Ascii,虽然设置为utf8

mysql已经按照http://blog.csdn.net/yipiankongbai/article/details/16937815 修改了配置,且charset显示为utf8。
表创建的时候,设置default charset=utf8, 且 show create table * 显示 charset是utf8。

但是存储中文的时候,还是会乱码,中文已经转换为utf8编码了。
检查mysql返回存入的中文,发现编码方式是ASCII。
小白真是没办法了,恳请指导。

  • 写回答

3条回答 默认 最新

  • wangdachui95345 2017-02-10 01:28
    关注

    终于找到原因了,因为我使用了存储过程,存储过程中也需要设置编码方式为utf8,不然会以ASCII存储,当然乱码。存储过程中设置编码的方式,
    已经验证过,可行的有两种方法:
    方法1:接收参数的时候,如 IN title VARCHAR(100) CHARACTER SET UTF8

    方法2:存储过程中调用convert函数,如 insert into test VALUES (convert( '哈哈' using utf8));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?