eclipse console的中文问题
运行环境:windows xp,my sql 5.0,jre 1.5.hibernate3.0, eclipse 3.2
同样的代码,我如果在windows的command窗口下运行,能够正确插入中文到数据库,并且在数据库也能正确查询出来。程序读出来的时候显示的也是正确的中文。
但是如果在 eclipse中直接运行,则插入的都是乱码,数据库里面显示的页都是乱码,程序读出来的也是乱码。这是怎么回事呢?谢谢!
============================================
my sql的status内容:
Current database: smsapp
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.41-community-nt MySQL Community Edition (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
============================================
代码:EncodeTest.java
package smsapp;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.Query;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import java.io.*;
import java.util.*;
/**
* <p> Title: </p>
* <p> Description: </p>
* <p> Copyright: Copyright (c) 2003 </p>
* <p> Company: </p>
* @author not attributable
* @version 1.0
*/
public class EncodeTest {
public EncodeTest() {
}
public static void main(String[] argv) {
Properties systemProperties = System.getProperties() ;
System.out.println(systemProperties.getProperty( "file.encoding "));
//hibernate test
//1 insert to dababase
try {
SessionFactory sf = new Configuration().configure()
.buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
String content=new String( " ");
try{
content = new String(new String(( "第一次测试,看看 ").getBytes(), "utf-8 "));
//content = "第一次测试 ";
System.out.println( new String(content.getBytes( "GBK ")) );
}
catch(Exception e){
e.printStackTrace();
}
for (int i = 0; i < 1; i++) {
SmsToSend smstosend = new SmsToSend();
smstosend.setRecCardNbr( "13636650209 ");
smstosend.setEncode(8);
smstosend.setSmscontent(content);
session.save(smstosend);
}
tx.commit();
session.close();
}
catch (HibernateException e) {
e.printStackTrace();
}
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
ArrayList arrayList = null;
String SQL_STRING = "FROM SmsToSend ";
Query query = session.createQuery(SQL_STRING);
ArrayList list = (ArrayList)query.list();
for(int i=0; i <list.size();i++){
SmsToSend result = (SmsToSend)list.get(i);
System.out.println(result.getRecCardNbr());
try{
System.out.println(new String(result.getSmscontent().getBytes( "gbk ")));//
}
catch(UnsupportedEncodingException e){
e.printStackTrace();
}
}
session.close();
}
}
[解决办法]
[解决办法]
Eclipse 的菜单栏上选择:
windows---> preference
然后
General---> workspace
然后,更改字符编码为 UTF-8
[解决办法]
编码的问题