📄 decode.java
字号:
package com.sxit.wap.common;/*************ASCII, UNICODE 解码过程**************/// writed by zhouzhiming// 2003.04.15public class Decode { private int CharToInt(char c) { int re; re = (int)c; if ( (re <= 57) && (re >= 48) ) re = re - 48; else if ( (re >= 65) && (re <= 70) ) re = re - 55; else re = 0; return re; } private char HexStrToChar2(String HexStr) { if (HexStr.length() != 2) return (char)0; int ii; ii = CharToInt(HexStr.charAt(0))*16 + CharToInt(HexStr.charAt(1)); return (char)ii; } private char HexStrToChar4(String HexStr) { if (HexStr.length() != 4) return (char)0; int ii; ii = CharToInt(HexStr.charAt(0))*256*16 + CharToInt(HexStr.charAt(1))*256 + CharToInt(HexStr.charAt(2))*16 + CharToInt(HexStr.charAt(3)); return (char)ii; } public String AsciiToStr(String AsciiStr) throws Exception { int ii = 0; String str = ""; String sx = ""; while (ii + 2 <= AsciiStr.length()) { sx = AsciiStr.substring(ii, ii + 2); str = str + HexStrToChar2(sx); ii = ii + 2; } str = new String(str.getBytes("ISO-8859-1"),"gb2312"); return str; } public String UnicodeToStr(String UnicodeStr) throws Exception { UnicodeStr = UnicodeStr.toUpperCase(); int ii = 0; String str = ""; String sx = ""; while (ii + 4 <= UnicodeStr.length()) { sx = UnicodeStr.substring(ii, ii + 4); str = str + HexStrToChar4(sx); ii = ii + 4; }// str = new String(str.getBytes("ISO-8859-1"),"gb2312"); return str; } public static String strToUnicode(String str) throws Exception { String unicode = ""; for (int i=0; i<str.length(); i++) { unicode += Integer.toHexString((int)str.charAt(i)); } return unicode; } public String strToUtf8(String s) { String s1 = ""; if(s != null && !s.equals("")) { int i = s.length(); for(int j = 0; j < i; j++) { char c = s.charAt(j); s1 = s1 + "&#x" + toHexString(c) + ";"; } } return s1; } public String toHexString(char c) { int i = (int)c; int i1= i%16; int i2 = (i%256)/16; int i3 = (i%4096)/256; int i4 = i/4096; char c1 = hex(i1); char c2 = hex(i2); char c3 = hex(i3); char c4 = hex(i4); String str = "" + c4 + c3 + c2 + c1; return str; } public String toHexString(int i) { return toUnsignedString(i, 4); } final static char[] digits = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' , 'u' , 'v' , 'w' , 'x' , 'y' , 'z' }; private String toUnsignedString(int i, int shift) { char[] buf = new char[32]; int charPos = 32; int radix = 1 << shift; int mask = radix - 1; do { buf[--charPos] = digits[i & mask]; i >>>= shift; } while (i != 0); return new String(buf, charPos, (32 - charPos)); } public String utf8ToStr(String utf8) { utf8 = utf8.toUpperCase(); int ii = 0; String str = ""; String sx = ""; while (ii + 8 <= utf8.length()) { sx = utf8.substring(ii, ii + 8); sx = sx.substring(3, 7); str = str + HexStrToChar4(sx); ii = ii + 8; } return str; } private static char hex(int i) { char c = ' '; switch(i) { case 10: c = 'a';break; case 11: c = 'b';break; case 12: c = 'c';break; case 13: c = 'd';break; case 14: c = 'e';break; case 15: c = 'f';break; default: c = (""+i).charAt(0);break; } return c; } public static void main(String[] args) throws Exception { String str = "杨国长"; String unicode = ""; // for (int i=0; i<str.length(); i++) { // unicode += Integer.toHexString((int)str.charAt(i)); // } // System.out.println(unicode); Decode dc = new Decode(); // String str1 = dc.UnicodeToStr(unicode); System.out.println(dc.strToUtf8(str)); // System.out.println(str1); // String ddd; // ddd = "970760ca516874034e50575b7f8e5c1159734e8c4eba7ec40074002e0041002e0054002e007598a089866027723189c25ff5ff0c540c60276fc060c597f34e5069825ff5ff01629762d2201c975e5178201dff0c660e661f53e37f69603b52a8545872067b114e0a7ebfff01"; //970760CA516874034E50575B7F8E5C1159734E8C4EBA7EC40074002E0041002E0054002E007598A089866027723189C25FF5FF0C540C60276FC060C597F34E5069825FF5FF01629762D2201C975E5178201DFF0C660E661F53E37F69603B52A8545872067B114E0A7EBFFF01 // String str = sortBean1.AsciiToStr(ddd); // Decode dc1 = new Decode(); // String str2 = dc1.UnicodeToStr(ddd); // System.out.println(str2); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -