wangdachui95345
wangdachui95345
采纳率84.6%
2017-02-09 07:31

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 wangdachui95345 4年前

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

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

    点赞 1 评论 复制链接分享
  • zzhao114 Z. ZHANG 4年前

    你是用mysql直接存的数据还是用java存的数据呀?

    点赞 评论 复制链接分享
  • stven_king 静默加载 4年前
    点赞 评论 复制链接分享

相关推荐