中文字符问题
用java开发一个简单的web应用,从jsp到eclipse工程,再到mysql数据库都设置的为utf-8字符,也都运行正常。现问题是java代码中设定的中文字符,比如“中国”,被传到jsp显示时 "中国 "前面加了几个乱码框框,网上查了下是由于utf-8字符会补位,请问这种问题怎么解决?怎么去掉中文字符前多加的乱码?谢谢!!!
------解决方案--------------------写一个方法转换一下就可以了 
 public String toChina(String str) 
 { 
   String strtemp = str; 
   byte []temp = str.getBytes( "iso-8859-1 "); 
   strtemp = new String(temp); 
   return strtemp;   
 }. 
 用这种格式取用户输入的内容: 
 类名.toChina(request.getParameter( "xxx ")); 
 加上异常处理就行了,这样取到的字符应该就不是乱码了
------解决方案--------------------1.进入到mysql安装目录修改my.ini 
 [client] 
 port=3306 
 default-character-set=gbk   
 [mysql] 
 default-character-set=gbk   
 2.在mysql中建表时需要添加默认字符集语句 
 例如: 
 create table person( 
 	id char(32), 
 	password char(20) not null, 
 	name char(20)not null, 
 	email char(32), 
 	primary key (id) 
 )ENGINE=MyISAM DEFAULT CHARSET=utf8;   
 3.在你的JSP页面里要加上 
  <%@page contentType= "text/html; charset=gbk " %>   //charset=gbk   
  <% 
   request.setCharacterEncoding( "gbk "); 
 %>    
 4.在建立数据库连接时要加上如下语句 
 例如: 
 Class.forName( "org.gjt.mm.mysql.Driver "); 
 con = DriverManager.getConnectionjdbc:mysql://localhost/regAndLogin?useUnicode " + 
        "=true&characterEncoding=gbk ";//重点在这里
------解决方案--------------------create table person( 
 id char(32), 
 password char(20) not null, 
 name char(20)not null, 
 email char(32), 
 primary key (id) 
 )ENGINE=MyISAM DEFAULT CHARSET=gbk;
------解决方案--------------------添加一个方法: 
 public String getChinese(String str){ 
   if(str !=  " "){ 
        try{ 
            str = new String(str.getBytes( "iso-8859-1 "), "gb2312 "); 
         }catch(Exception ex){} 
   }else{ 
        str =  " "; 
   } 
   return str; 
 }
------解决方案--------------------听高手讲 
 解决jsp页面传值的乱码除了setCharacterEcoding(); 
 也就是下面这种了, 
 String country = new String(country.getBytes( "ISO8859-1 "), UTF-8); 
 手动转码是绝对不会出错最保险滴