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

来源:互联网 发布:nba2k16mc最帅捏脸数据 编辑:程序博客网 时间:2024/05/28 11:29

我手上还有事,简单说好了。我手上的项目是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下的配置的解决的

原创粉丝点击