QT学习笔记之QT与Mysql中文乱码(下)
写在前面
本来不打算写这篇博客的,但是想想还是太丢人了们还是决定吧这个丢人的经历写下来。
问题描述
还记得我在上篇博客里面写到的内容吗?要存入中文字符,要在中文字符串后面加入toUtf8()这个函数对吧,我当时是这么说的,也是这么解决的问题,当时记得还分析了错误的原因(这才是最丢人的地方,都分析到家门口了,结果自己一装逼又把自己给踢出来了!T_T)。上次分析错误的原因,说是中文给UTF8编码了而导致的一些错误。其实是UTF8的某些选项选择错误导致的。
上次在Mysql中建立表时是采用默认的排序,UTF8_general_ci,插入中文没有问题,但是读取中文乱码,原因还是页面编码的问题。
通过分析Mysql以及页面读取中文的结果可以得出的结论是这是因为页面与数据库编码格式不一导致的,明明都是UTF8啊!对啊,明明都是UTF8啊,那你存入中文还用toUtf8()??(这就是最想抽自己的地方),所以还是编码的问题,通过sogou查询,找到了许久钱的一篇文章,上面的示例UTF8的排序选的是Utf8_bin,我将信将疑,居然解决了问题。也许这样设置以后,都不用toUtf8()存入中文了,因为我不想再去看原来的代码了,所以没有去改那部分的代码,有兴趣的同学可以自己去试试。
花了两天去想,没想到坑在了这上面。。。(呜呜呜呜!!!!)
不积跬步无以至千里,不积小流无以成江河。