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下的配置的解决的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值