短信中的的UCS2的编码与解码方法(java)……

短信中的的UCS2的编码与解码方法(java)……
最近,做一个关于SMS的程序,需要对中文部分进行UCS编码,这里用了两个函数,可以将短信中的UCS2字符串在UCS2和GBK之间装换。记录以下代码:
/** * UCS2解码 * * @param src * UCS2 源串 * @return 解码后的UTF-16BE字符串 */ public static String DecodeUCS2(String src) { byte[] bytes = new byte[src.length() / 2]; for (int i = 0; i < src.length(); i += 2) { bytes[i / 2] = (byte) (Integer .parseInt(src.substring(i, i + 2), 16)); } String reValue; try { reValue = new String(bytes, "UTF-16BE"); } catch (UnsupportedEncodingException e) { throw new PduDecodeException(e); } return reValue; } /** * UCS2编码 * * @param src * UTF-16BE编码的源串 * @return 编码后的UCS2串 */ public static String EncodeUCS2(String src) { byte[] bytes; try { bytes = src.getBytes("UTF-16BE"); } catch (UnsupportedEncodingException e) { throw new PduEncodeException(e); } StringBuffer reValue = new StringBuffer(); StringBuffer tem = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { tem.delete(0, tem.length()); tem.append(Integer.toHexString(bytes[i] & 0xFF)); if(tem.length()==1){ tem.insert(0, '0'); } reValue.append(tem); } return reValue.toString().toUpperCase(); }

By:残梦追月

你可能感兴趣的:(短信中的的UCS2的编码与解码方法(java)……)