求助:ubuntu下qt5.5连接sqlserver中文问题

sdwfkfq 2015-11-18 07:59:32
最近学习ubuntu,qt5.5。需要连接服务器上的sqlserver2008数据库,就根据网上的步骤(http://blog.csdn.net/w_ww_w/article/details/18075957)安装unixodbc和freetds。配置odbc后,发现能连上数据库,varchar类型列的汉字能读取,但是类型为char的列的汉字读取不到,这是为什么?请求解救。

1、在/usr/local/etc下freetds.conf配置 client charset =UTF-8
2、连接数据库
QSqlDatabase netdb=QSqlDatabase::addDatabase('QODBC');
netdb.setDatabaseName(test");
netdb.setUserName("sa");
netdb.setPassword("lscslscs");

3、读取
netquery.prepare("select bh,mc,qc from ttzd");
netquery.exec();
netquery.next();
QString ls_str1=netquery.value(0).toString();
QString ls_str2=netquery.value(1).toString();
QString ls_str3=netquery.value(2).toString();
ttzd中mc是char(10),qc是varchar(10)
ls_str3是汉字,但是ls_str2="",这是怎么回事?如何配置,怎么解决?求助各位
...全文
297 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdwfkfq 2015-11-22
  • 打赏
  • 举报
回复
一般显示不了就是两个方向的事情:字库和编码,先查编码有没有问题,没有的话就看对应的路径下字库是否是支持的,基本查过不会有问题的。 ---------- 感谢你提供帮助 我是新手,对编码、ubuntu都不太熟悉,具体怎么查一下编码?对应路径下字库是否支持怎么去查,能否告诉我详细的方法? 今天把select语句改成convert(nvarchar(30),mc)能显示汉字,不过这样就和windwos下的语句不一致了。
tiancai1912 2015-11-20
  • 打赏
  • 举报
回复
一般显示不了就是两个方向的事情:字库和编码,先查编码有没有问题,没有的话就看对应的路径下字库是否是支持的,基本查过不会有问题的。

21,469

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧