mysql中文读出问号,以及SET NAMES not allowed by driver错误解决方案

我手上还有事,简单说好了。我手上的项目是mysql数据库,有个字段会出现中文,C++读取发现,从数据库读取出来的全是如果有中文字段全部都是63,也就是问号了。搜索一段时间后,将 SHOW VARIABLES LIKE 'character%'; 这个命令出来的字符集能改的全部改成了utf8,但是测试发现还不行。然后,想着在初始化连接的时候初始化字符集也就是"set names 'utf8" 了,可是,抛出异常为SET NAMES not allowed by driver。百度之后发现,mysql的odbc在5.0版本以后不支持这个了,好吧。搞了好久,没找到答案,突然想到,既然不让我用sql设,也许会在odbc驱动管理那里设置。然后进去,果然在数据源配置的Details->Connection 下面有个Character Set,原来是空白的,果断选为utf8。保存测试,好了,这下OK。这个是在windos下,有界面管理的,linux下,没有这个比较麻烦。

又百度了下,然后vim /etc/odbc.ini 找到你mysql的那段数据源,在下面加上一句 charset         = utf8 。好了,问题解决。

那啥,用odbc管理界面,因为我的机器上没装所以不知,也别我了哈。

对了,搜mssql官网的时候看到这个,http://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html讲odbc配置选项的,有需要的可以看下。我也是看到这个才linux下的配置的解决的
————————————————
版权声明:本文为CSDN博主「TAXUEc750」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/TAXUEc750/article/details/12616927

猜你喜欢

转载自www.cnblogs.com/railgunman/p/12121195.html