Java 读取 MySQL 中文 乱码
Java 读取 MySQL 中文 乱码
场景:Java,eclipse,读取MySQL数据库,MySQL编码为utf-8
问题:读出来的中文在eclipse的输出窗口中显示为乱码
错误的写法
1
System.out.print(new String( rs.getString("bib_author").getBytes("utf-8"),"GBK" ));
2
System.out.print( rs.getString("bib_author"));
Java中统一使用Unicode编码。
正确的写法:
System.out.print(new String (rs.getBytes("bib_author"),"utf-8") + " ");
如划线加粗部分所示,应该先用二进制方式读进来,然后再转化为utf-8方式,和数据库中的编码一致。
下面是之前碰到过的一个例子,从web服务器读取数据,并转化为utf-8。web服务器使用的是iso-8859-1编码。
同样也是先用getbytes方式先获取二进制流,然后转成utf-8。
-------------------------------------------------------------------------------------------
3个地方设置编码,解决乱码问题
public static String GetResponse(HttpMethodBase Method) throws IOException {
String charset= Method.getResponseCharSet();
System.out.println("返回的字符编码为:"+charset);
InputStream responseBody = Method.getResponseBodyAsStream();
// BufferedReader br = new BufferedReader(new InputStreamReader(responseBody));
BufferedReader br = new BufferedReader(new InputStreamReader(Method.getResponseBodyAsStream(), "ISO-8859-1"));//1
String tempbf;
StringBuffer htmlbf = new StringBuffer(100);
while ((tempbf = br.readLine()) != null) {
// htmlbf.append(tempbf);
htmlbf.append(new String(tempbf.getBytes("iso-8859-1"),"utf-8"));//2
htmlbf.append("\n");
相关文档:
首先停止MySQL服务:sudo /etc/init.d/mysql stop
然后编辑MySQL配置文件:sudo gedit /etc/mysql/my.cnf
在my.cnf文件中的[client]段下面加入
default-character-set=utf8
[mysqld_safe]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8
重新启动MySQL服务 ......
6
、修改数据库的字符集
mysql>use mydb
mysql>alter database mydb character set utf-8;
6
、创建数据库指定数据库的字符集
mysql>create database mydb character set utf-8;
通过配置文件设置创建数据库时字符集:
#vi /var/lib/mysql/mydb/db.opt
default-character-set=latin1
default-col ......
http://blog.csdn.net/gztoby/archive/2004/11/11/176737.aspx
1.
应用范围
本规范应用于采用
J2EE
规范的项目中,所有项目中的
JAVA
代码(含
JSP
,
SERVLET
,
JAVABEAN
,
EJB
)均应遵守这个规范。同时,也可作为其它项目的参考。
2.
设计类和方法
2.1
创建具有很强 ......
本贴摘自 http://bbs.langsin.com/redirect.php?tid=9936&goto=lastpost
想打印一个String 变量的地址,请问如何来写?
不是hashcode,就是内存地址,而且要打印出来。
也许比较简单,不过我没写出来。
----------------------------------------------------------------------------------------
使用Syst ......