Linux下MySql的中文乱码处理-修改字符集
来源:互联网 发布:安卓街机软件 编辑:程序博客网 时间:2024/05/06 10:29
文章来自:http://www.cnblogs.com/sjhrun2001/archive/2009/03/05/1404075.html
重要的:default-character-set=utf8
service mysql restart
中文乱码的原因是因为使用了MySql的默认字符集latin1,处理方法:
修改MySql服务器的字符集为gbk
1.找到MySql目录下的my.cnf的配置文件(在Window系统下是my.ini文件)
2.打开my.cnf文件,找到[mysql]和[mysqld]的配置段,在这两个配置段下,加上default-character-set=gbk
如果default-character-set配置节点存在,就替换
3.保存my.cnf文件
4.Linux下使用service mysql restart命令重启MySql服务
新建的数据库都会使用到这个字符集做为默认字符集
修改MySql服务器各个数据库的字符集
如果在设置服务器字符集之前,存在了数据库。需要更改数据库的字符集:
use datatable_name;
alter database character set gbk;
改完字符集的其它问题
字符集修改好了以后发现使用存储过程做新增操作时,还会出现中文乱码,但是直接写SQL语句就不会出现乱码。
这个问题很怪异,有哪位高人知道,帮忙告诉一声。
我采用的解决方法是重新生成存储过程,问题搞定。
采用上面的方法虽然能显示中文了,但是显示不全,还是有乱码?
http://www.cnblogs.com/qq78292959/archive/2012/05/30/2527099.html
这貌似可以解决,哦,主要是你要改一下编码方式.
我采用上面的修改配置方法,将字符集改为utf8,然后在Qt的main函数中采用UTF8编码,就能插存储MySql就能中文显示了。
问题如下:
1.中文显示乱码
2.数据库连接不上
问题一:
但是如果我们的软件只运行在中文系统下,最简单的方法:在main函数中调用QTextCodec::setCodecForTr( QTextCodec::codecForName("GBK") );就可以了。
记得这句要在所有使用tr的语句前调用。以后在需要使用中文的地方使用tr("中文字符");就可以了。但事情真的这么简单吗?当我将一个测试程序拷贝到一台没装过Qt的电脑上时,tr中的字都显示不了了。奇怪的是用Creater IDE生成的UI界面中的汉字能正常显示。看了qmake生成ui的.h文件,发现那些中文字符已经被自动转换成UTF8 encoding了。奇怪的是,QTextCodec::setCodecForTr( QTextCodec::codecForName("GBK") );改为QTextCodec::setCodecForTr( QTextCodec::codecForName("utf-8") );也不行。没办法了,查资料,然后看了源代码。折腾了N久终于搞清楚了。
原来Codecs是以plugin的形式被调用的,显示中文的codec plugin文件是qcncodecs4.dll。里面有QGb18030Codec、QGbkCodec和QGb2312Codec三个类。注意,后两个类是从第一个类派生的,因为它们的字符只是Gb18030的特定子集。GBK和GB2312只是为了兼容旧的系统和软件。大家以后可以直接使用GB18030。这个类真正的“肉”就是巨长的一个编码数组。
既然找到了正主儿,那么问题也就迎刃而解了。将qcncodecs4.dll拷入目标机器的特定路径,如果你开发的电脑Qt安装目为C:\Qt的话,qcncodecs4.dll应该拷入目标电脑的C:\Qt\Plugins\Codecs。运行程序,看到了久违的汉字。
有没有更好的方法呢?在Qt(Cute)中当然有了
感谢Qt的plugin系统,将qcncodecs4.dll拷贝到运行程序目录下的特定目录,如运行程序完整路径为C:\MyApp\MyApp.exe,那么qcncodecs4.dll应拷贝至C:\MyApp\Plugins\Codecs下,然后在main函数中加入下面的代码:
QApplication a(argc, argv);
QString sPath = a.applicationDirPath();
sPath += QString("/plugins");
a.addLibraryPath(sPath);
一句话解决问题一:首先,在发布的应用程序文件夹下建立Plugins\Codecs
其次,将qcncodecs4.dll库文件放到Plugins\Codecs目录下
问题一补充:
由于本人开发是在windows下开发,当移植到ARM板上时会显示乱码 即使我们加入QTextCodec::setCodecForTr( QTextCodec::codecForName("GBK") );这条语句也还是一样的乱码。因为不同平台字体编码格式不同。
解决:将windows字体库拷贝到开发板fonts/目录下即可。同时支持最大字体显示
问题二:
程序使用sqlilte数据库,标机没有这个数据库驱动。所以导致连接数据库的时候连接不上。
解决办法如下:
1.在发布的应用程序文件夹下建立如下文件夹Plugins\sqldrivers
2.到QT安装目录下,例如本人安装目录C:\Qt\2009.05\qt\plugins\sqldrivers,将此目录下的所有文件拷贝到1目录下
- Linux下MySql的中文乱码处理-修改字符集
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL的修改字符集编码为UTF8(解决中文乱码问题)
- mysql数据库中文乱码问题,修改mysql字符集(Linux Windows)
- Linux下MySQL 5.5/tomact6/Centos 的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)适用于centos 7
- (原创)Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Ubuntu14.04下MySQL 5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)
- mysql修改字符集解决中文乱码的方法
- Linux/Windows下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
- Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
- Android开发之四(三):常用控件之提示(Toast)
- MongoDB数据库用户名和密码的设置
- hdu 2159 dp(二维完全背包)
- 求数字转化为二进制后1的个数
- HDU1194:Beat the Spread!
- Linux下MySql的中文乱码处理-修改字符集
- 爆炒黑木耳 绿茶婊 野模的春天 俄罗斯轮盘
- 中国戏曲有哪些
- 自学整理一:java文件对话框的使用(包括文件多选,文件、文件夹同时可选操作)
- Android SDK4.2 (API17) 开发环境的搭建 .
- String s=new String("abc")创建了几个对象?
- 使用类对时间进行输出
- 系统平均负载(Load average)与CPU利用率
- 使用 WebView 显示大图片 避免oom错误