博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GB2312转成UTF-8
阅读量:5241 次
发布时间:2019-06-14

本文共 1191 字,大约阅读时间需要 3 分钟。

Codepublic static String convertStringUTF(String gbk) {		String utf8 = gbk;		try {			if (!utf8.equals("") && utf8 != null) {				utf8 = new String(gbk2utf8(gbk), "UTF-8");			}		} catch (UnsupportedEncodingException e) {			utf8 = gbk;		}		return utf8;	}	public static byte[] gbk2utf8(String chenese) {		char c[] = chenese.toCharArray();		byte[] fullByte = new byte[3 * c.length];		for (int i = 0; i < c.length; i++) {			int m = (int) c[i];			String word = Integer.toBinaryString(m);			StringBuffer sb = new StringBuffer();			int len = 16 - word.length();			for (int j = 0; j < len; j++) {				sb.append("0");			}			sb.append(word);			sb.insert(0, "1110");			sb.insert(8, "10");			sb.insert(16, "10");			String s1 = sb.substring(0, 8);			String s2 = sb.substring(8, 16);			String s3 = sb.substring(16);			byte b0 = Integer.valueOf(s1, 2).byteValue();			byte b1 = Integer.valueOf(s2, 2).byteValue();			byte b2 = Integer.valueOf(s3, 2).byteValue();			byte[] bf = new byte[3];			bf[0] = b0;			fullByte[i * 3] = bf[0];			bf[1] = b1;			fullByte[i * 3 + 1] = bf[1];			bf[2] = b2;			fullByte[i * 3 + 2] = bf[2];		}		return fullByte;	}

转载于:https://www.cnblogs.com/skyblue/archive/2012/04/23/2466587.html

你可能感兴趣的文章