小议关于java字符编码的问题

原创 2013年12月04日 09:59:21

 

对于初学者而言,字符编码是一个很“模糊”的概念,自己代码写得好好的,却显示在前端的时候出现了不知名的字符串,很是郁闷,这里我简单介绍一下自己的经验,如果我有什么不正确的地方,希望大家指出,相互学习

 

我以网页操作流程为例子说明

1.         首先,我们进入JSP页面,它已经指明了页面是以什么样的方式编码,例如GBKISO-8859-1UTF-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字符编码问题总结

  • 2013年06月20日 14:39
  • 25KB
  • 下载

JAVA中文字符编码问题详解.doc

  • 2010年09月16日 23:15
  • 142KB
  • 下载

JAVA中文字符编码问题详解

JAVA的中文字符乱码问题一直很让人头疼。特别是在WEB应用中。网上的分析文章和解决方案都很多,但总是针对某些特定情况的。很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经...

java字符编码问题

  • 2008年04月18日 17:27
  • 3KB
  • 下载

JAVA基础 day23 IO流的其他类 (对象的序列化 管道流 RandomAccessFile类(随机读取文件) DateStream(操作基本数据类型的流) 操作数组的流 )字符编码问题

IO流其他类对象的序列化 序列化:把Java对象转换为字节序列的过程。 反序列化:把字节序列恢复为Java对象的过程用途:把对象的字节序列永久的保存到硬盘上,通常存在文件中。 ...

Java字符编码的转化问题

我们通过二维码扫描来获得二维码中的信息。但是,我们的二维码的产生过程却是“多样化”的。即在产生二维码的时候是以不同的字符串编码类型进行编码的。比如,GBK、GB2312、UTF-8等等。而这些不同的编...

【总结】Java与字符编码问题详谈

一、字符集和字符编码方式  计算机只懂得0/1两种信号,而人类所使用的符号却无法尽数。要让计算机能够表示大千世界的符号,就一定要为每个符号指定一个唯一的整数。而这一套符号与整数的对应集合,就是我...

JAVA中文字符编码问题详解

JAVA的中文字符乱码问题一直很让人头疼。特别是在WEB应用中。网上的分析文章和解决方案都很多,但总是针对某些特定情况的。很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经...

JAVA中文字符编码问题详解 控制台输出

许多文件的默认编码是ISO-8859-1,而中文操作系统的缺省编码是GB18030,在此工作空间中建立的工程编码是GB18030.我们常用的编码是UTF-8,能够使得插件有更好的国际支持。在编写JSP...
  • hoppboy
  • hoppboy
  • 2011年11月30日 15:10
  • 13927
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:小议关于java字符编码的问题
举报原因:
原因补充:

(最多只允许输入30个字)