VS2010 +mysql API查询数据库乱码 str.Format(_T("%s"),m_row[j]);这是什么?整形还是字符串? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计数据库查询到的是ANSI编码的字符串,而工程是Unicode的转换一下吧 参考 MultiByteToWideChar 这个原本是要把表中的内容写入一个listControl控件中,m_row得到的是字符串数组,如果要得到整形,要用auti(),.原本我以为是编码问题中文乱码,但是试着查询一个整形字段,得到的都是乱码,这估计就不是编码的问题了。 终于找到原因了。原来MYSQL_ROW 对象是char ** 类型,一个地址指针,即字符串数组的首地址,而地址是个Long类型。如果用str.Format(_T("%s"),m_row[j]);,这是把这个m_row[j]字符串的地址换成字符串。想想,把一个Long类型的地址换成字符串(我猜就是把这个Long类型按照gb2312编码换成汉字),肯定是乱码。所以,直接把这句换成 str=m_row[j];,直接把字符串地址所指向的字符串赋值给CString变量,就不再是乱码了。 为什么自绘按钮不能添加变量?否则报WinCtrl1.cpp 72行错误。 关于sql字符串的问题 如何把十六进制数据变成图片 【散分】找个C++高手做师傅··教我学学C++ 嘿嘿 请 找错误! 给大家推荐一个不错的电子图书网! 关于鼠标拖放 怎样执行得到可执行程序B? 一个屏幕抓图的问题!请教大家! 怎么判断控件的内容是否被改动过? 下面这句话又是啥意思 C#中的二维数组的定义char[][] tables = new char[8][]; 转换到C++中,如何表示
转换一下吧 参考 MultiByteToWideChar
这个原本是要把表中的内容写入一个listControl控件中,m_row得到的是字符串数组,如果要得到整形,要用auti(),.
原本我以为是编码问题中文乱码,但是试着查询一个整形字段,得到的都是乱码,这估计就不是编码的问题了。
原来MYSQL_ROW 对象是char ** 类型,一个地址指针,即字符串数组的首地址,而地址是个Long类型。
如果用str.Format(_T("%s"),m_row[j]);,这是把这个m_row[j]字符串的地址换成字符串。想想,把一个Long类型的地址换成字符串(我猜就是把这个Long类型按照gb2312编码换成汉字),肯定是乱码。
所以,直接把这句换成 str=m_row[j];,直接把字符串地址所指向的字符串赋值给CString变量,就不再是乱码了。