小议关于java字符编码的问题
2013-12-04 09:59
387 查看
对于初学者而言,字符编码是一个很“模糊”的概念,自己代码写得好好的,却显示在前端的时候出现了不知名的字符串,很是郁闷,这里我简单介绍一下自己的经验,如果我有什么不正确的地方,希望大家指出,相互学习
我以网页操作流程为例子说明
1. 首先,我们进入JSP页面,它已经指明了页面是以什么样的方式编码,例如GBK、ISO-8859-1、UTF-8等,将数据传送给server端
2. 其次,server端接受的数据也应该与前端对应起来,必须保持一致
3. 最后,将数据插入到数据库中,这里也需要数据库编码和字server端编码是一致的
总结:从前端----server端----数据库 这三者之间的编码必须保持一致,才能让不会出现乱码的现象
String bRet=new String(str.getBytes("gbk"),"utf-8");
备注:原来的字符串是gbk编码,但是出现乱码的问题,将其转为utf-8编码
package hb.code_change; import java.io.UnsupportedEncodingException; import org.junit.Test; public class CodeChange { public static String str = "[['20120522222139251', '绋芥牳绯荤粺鐨勬ā鍧楄〃缁撴瀯.txt','.txt',900,100,-4,'']]"; @Test public void test(){ /*byte[] byteTemp = str.getBytes("ISO-8859-1"); try { String sRet = new String(byteTemp,"utf-8"); System.out.println(sRet); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }*/ try { String bRet=new String(str.getBytes("gbk"),"utf-8"); System.out.println(bRet); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } /************************************************************** * <p>功能:将UniCode码转换为Ascii码</p> * <p>作者: </p> * <p>最后更新:</p> * * @param sUniCode -输入的UniCode码字符串 * @return Ascii码字符串 *************************************************************/ public static String Un2Ascii(String sUniCode) { if(sUniCode == null) return ""; String sRet = null; try { byte[] byteTemp = sUniCode.getBytes(); sRet = new String(byteTemp,"ISO-8859-1"); return sRet; } catch(Exception ue) { System.out.println("Uni2Ascii:" + ue.getMessage()); return sRet; } } @Test public void testUn2Ascii(){ String result = Un2Ascii("%257B%2522pkId%2522%253A%2522"); System.out.println(result); } /**************************************************************** * <p>功能:将sAscII码转换为UniCode码 * <p>作者: </p> * <p>最后更新:</p> * @param sAscII -AscII码字符串 * @return UniCode码字符串 ***************************************************************/ public String Ascii2Un(String sAscII) { if(sAscII==null)return ""; String sRet = null; try { byte[] byteTemp = sAscII.getBytes("ISO-8859-1"); sRet = new String(byteTemp); return sRet; } catch(Exception ue) { System.out.println("Ascii2Un:" + ue); return sRet; } } @Test public void testAscii2Un(){ String result = Un2Ascii("%257B%2522pkId%2522%253A%2522"); System.out.println(result); } }
相关文章推荐
- 关于java字符的编码问题学习
- 关于java源码在编译时提示:编码GBK的不可映射字符 的问题
- java 解决全站字符乱码(POST和GET中文编码问题)
- 关于Java编码问题
- 关于delphi中url文件下载编码问题(处理里面含有空格,汉字,字符)
- 关于中文字符UNICODE编码的三个问题(基于此可以求中文字符的笔划和首拼)
- Java字符的编码解码与乱码问题
- 关于Hibernate或者java本身文件编码错误的问题?
- 深入浅出Java中文问题(二)字符,字节和编码
- 关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析
- 关于xml编码问题在VB,PHP,JAVA下的解决方案
- 关于xml编码问题在VB,PHP,JAVA下的解决方案
- 关于java中的编码问题
- 关于java串口通信 接受显示 乱码的字符转换问题解决方案
- java字符编码问题:常用的GBK与Unicode汉字编码在JAVA是怎样规定的?
- 关于java的编码问题两篇(似乎有理)
- 关于xml编码问题在VB,PHP,JAVA下的解决方案
- Java字符编码问题
- 用java写关于删除一个字符串的字符以及删除一个字符串与另一个字符串中相同字符的问题
- 关于java中的编码问题