关于在MySQL 、 VC、 JSP 中使用UTF-8解决中文生僻字乱码的问题
2009-06-13 10:08
1541 查看
近日在一java项目中出现中文生僻字就会出现问号的现象,上网找了些资料,说将GB2312编码改为GBK或者UTF-8就会无问题,但多数文章都讲的不详细,如果只是简单的将jsp页面的GB2312编码替换也解决不了问题,因为我的项目需要VC和java连接mysql数据库,研究了一天总算顺利解决,总结如下:
1.我原来的数据库是用GB2312编码的,这样无论vc还是jsp都可以正常显示中文,但遇到生僻字,jsp就会显示问号,vc就正常显示,这是java比较严格的字符编码造成的。
CREATE TABLE `tb_folder_info` (
`id` int(11) NOT NULL auto_increment,
`typechildid` int(11) default NULL,
`foldername` varchar(100) character set latin1 default NULL,
`folderinfo` text character set latin1,
`path` varchar(255) character set latin1 default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 ROW_FORMAT=FIXED;
2.由于数据库以前的编码是GB2312,这样会给日后软件国际化带来麻烦,所以决定将数据库转换成UTF-8编码:
CREATE TABLE `tb_folder_info` (
`id` int(11) NOT NULL auto_increment,
`typechildid` int(11) default NULL,
`foldername` varchar(100) default NULL,
`folderinfo` text,
`path` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;
3.数据库编码转换后,现在要解决MySQL-Front等的数据库管理软件显示乱码的问题,经过一番折腾,终于发现连接数据库的字符集要选择GBK,而不是UTF-8,这样你在MySQL-Front中使用insert语句导入以前的数据也是显示中文的了。
4.现在又出现VC程序显示一堆问号,网上又找了些资料,发现只要在读写数据库前加上一句mysql_query(sock, "SET NAMES GBK"); 这条语句可以加在mysql_real_connect后面,一次就行。
5.既然VC是GBK编码,jsp端也要用GBK编码,new String(strvalue.getBytes("ISO-8859-1"), "GBK");
以前曾经错误的认为数据库的编码是UTF-8,程序也要选择utf-8,但这样显示出来的是乱码,所以程序端编码要统一为GBK,最后调试一下,中文问题解决了,生僻字也可以显示了,问题完满解决^-^
1.我原来的数据库是用GB2312编码的,这样无论vc还是jsp都可以正常显示中文,但遇到生僻字,jsp就会显示问号,vc就正常显示,这是java比较严格的字符编码造成的。
CREATE TABLE `tb_folder_info` (
`id` int(11) NOT NULL auto_increment,
`typechildid` int(11) default NULL,
`foldername` varchar(100) character set latin1 default NULL,
`folderinfo` text character set latin1,
`path` varchar(255) character set latin1 default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 ROW_FORMAT=FIXED;
2.由于数据库以前的编码是GB2312,这样会给日后软件国际化带来麻烦,所以决定将数据库转换成UTF-8编码:
CREATE TABLE `tb_folder_info` (
`id` int(11) NOT NULL auto_increment,
`typechildid` int(11) default NULL,
`foldername` varchar(100) default NULL,
`folderinfo` text,
`path` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;
3.数据库编码转换后,现在要解决MySQL-Front等的数据库管理软件显示乱码的问题,经过一番折腾,终于发现连接数据库的字符集要选择GBK,而不是UTF-8,这样你在MySQL-Front中使用insert语句导入以前的数据也是显示中文的了。
4.现在又出现VC程序显示一堆问号,网上又找了些资料,发现只要在读写数据库前加上一句mysql_query(sock, "SET NAMES GBK"); 这条语句可以加在mysql_real_connect后面,一次就行。
5.既然VC是GBK编码,jsp端也要用GBK编码,new String(strvalue.getBytes("ISO-8859-1"), "GBK");
以前曾经错误的认为数据库的编码是UTF-8,程序也要选择utf-8,但这样显示出来的是乱码,所以程序端编码要统一为GBK,最后调试一下,中文问题解决了,生僻字也可以显示了,问题完满解决^-^
相关文章推荐
- JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决 5大配置点 使用UTF-8编码
- 中文乱码问题 ? 原因:JSP中默认使用iso-8859-1字符编码方式,不支持中文 ? 常见的支持中文的编码方式:gb2312(常用简体汉字)、gbk(简体和繁体汉字)、utf-8 ? 解决中文乱码
- jsp servlet mysql fckeditor等配合使用时出现中文乱码的解决问题!
- JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码
- 不装oracle客户端使用plsql,以及中文乱码问号问题(也可以解决VC调用oracle 乱码问题)
- 解决Smarty中trancate使用UTF8时中文乱码问题
- linux下解决JSP与MYSQL的中文乱码问题
- php+mysql的utf-8中文乱码问题的解决方法
- JSP使用UTF-8链接MYSQL数据库(UTF8)乱码以及连接失败问题以及更改mysql默认编码
- mysql使用source 命令后表内中文乱码问题的解决方法
- Jena API使用详解(关注将本体持久化到MySQL后的操作及解决中文乱码等问题)
- 解决使用cmd或powershell进行数据库(MySQL,SQLite3...)查询时中文乱码的问题
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- 在JSP中使用过滤器解决中文乱码问题
- 解决mysql--jsp中出现的中文乱码问题
- Ubuntu15.10使用mysql 5.6.28中文乱码问题解决
- 关于解决Mysql中文乱码问题处理,Windows\Linux\Unix
- jsp中使用传参时出现中文乱码问题的解决方法
- jsp和servlet操作mysql中文乱码问题的解决办法
- 解决Java Web开发中Jsp存储读取MySQL数据中文乱码的问题