当前位置: 技术问答>java相关
请问一个乱码的问题!另外解决的话,可以追加100分!!
来源: 互联网 发布时间:2015-08-21
本文导语: 从数据库取出来的时候,显示是正确的(日文字),然后往另外一个页面传的时候,出现乱码,请问各位兄弟姐妹如何解决!!1 谢谢!!!! | 给一个转换中文和unicode,你要转换日文,只要...
从数据库取出来的时候,显示是正确的(日文字),然后往另外一个页面传的时候,出现乱码,请问各位兄弟姐妹如何解决!!1
谢谢!!!!
谢谢!!!!
|
给一个转换中文和unicode,你要转换日文,只要换一下Shift_JIS就性了。
public static String UnicodeToChinese(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
public static String ChineseToUnicode(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
public static String UnicodeToChinese(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
public static String ChineseToUnicode(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
|
编码问题,
〉〉显示是正确的(日文字)
用什么显示的?
〉〉显示是正确的(日文字)
用什么显示的?
|
这个没有简单的办法 是由编码不一致造成的 你看看 www.chinajavaworld.com
上面有这方面的faq
上面有这方面的faq
|
1.从数据库(SQL Server,Oracle,informax等)读数据到页面是不用转码的。(MySQl例外需要转码,ISO8859-1=>日文编码)
2.从页面-〉另一页面,需要转码ISO8859-1=>日文编码。(get,post在传输的过程中以ISO8859-1进行重新编码,所以要转)
3.把页面的数据保存到数据库要转码(ISO8859-1=>日文编码),当然如果已经转过了就不需要了。
4.在所有页面都要加的。
具体的日文编码符号可以在IE浏览器的查看-编码中找到。
2.从页面-〉另一页面,需要转码ISO8859-1=>日文编码。(get,post在传输的过程中以ISO8859-1进行重新编码,所以要转)
3.把页面的数据保存到数据库要转码(ISO8859-1=>日文编码),当然如果已经转过了就不需要了。
4.在所有页面都要加的。
具体的日文编码符号可以在IE浏览器的查看-编码中找到。
|
唉,提交的时候一般提交的内容都是按ISO8859编码后在传输的。所以用request.getParameter取出后,一般都用new String(before.getBytes("ISO8859-1"),"GBK")这样的办法转换过来。其中"GBK"你可以不要,而使用系统缺省的编码方式。反正是要使用一种包含你要显示字符的字符集。
另外还有一种办法就是在传输前,使用java.net.URLEncoder.encode(String s)方法编码一次。然后接收后通过java.net.URLDecoder.decode来解码就可以得到和原来一样的字符串对象。
另外还有一种办法就是在传输前,使用java.net.URLEncoder.encode(String s)方法编码一次。然后接收后通过java.net.URLDecoder.decode来解码就可以得到和原来一样的字符串对象。