小议关于java字符编码的问题
来源:互联网 发布:威纶触摸屏编程实例 编辑:程序博客网 时间:2024/05/22 09:47
对于初学者而言,字符编码是一个很“模糊”的概念,自己代码写得好好的,却显示在前端的时候出现了不知名的字符串,很是郁闷,这里我简单介绍一下自己的经验,如果我有什么不正确的地方,希望大家指出,相互学习
我以网页操作流程为例子说明
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,'']]";@Testpublic 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的字符编码问题
- 关于java字符的编码问题学习
- 关于字符编码的问题
- 关于字符编码的问题
- 关于字符编码的问题
- 关于Java字符编码几个容易弄错的问题
- 关于java中默认字符编码问题
- 关于字符编码问题
- 关于字符编码问题
- 关于字符编码问题
- 关于Qt的字符编码问题
- 关于C++程序的字符编码问题
- 关于Qt的字符编码问题
- 关于C++程序的字符编码问题
- 关于Qt的字符编码问题
- 关于java字符编码
- java:关于字符编码的试题
- 在Linux中如何让脚本在后台运行
- 常用日期类型转换方法
- 是用PreparedStatement对象插入日期例子
- 常用oracle字符串操作函数
- java数组常用的方法
- 小议关于java字符编码的问题
- SVN更新提交的使用
- 删除SVN缓存本地的账号
- 利用photoshop查看颜色的web代码
- outlook邮件存放的位置
- oracle导出/导入数据命令行
- Android 图表显示的新方案
- 解决window全局快捷键被占用的问题
- Android NDK开发基础