乱码转换

来源:互联网 发布:浏览器ip代理软件 编辑:程序博客网 时间:2024/06/05 15:54
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView text = (TextView) findViewById(R.id.text);TextView text1 = (TextView) findViewById(R.id.text1);String string = utf8ToUnicode("类型是试方面的款式风格都是看过你肯定是那个返");text.setText("UTF-8转unicode:" + string);String string1 = decodeUnicode(string);text1.setText("unicode转UTF-8:" + string1);}/*** utf-8 转unicode* * @param inStr* @return String*/public static String utf8ToUnicode(String inStr) {char[] myBuffer = inStr.toCharArray();StringBuffer sb = new StringBuffer();for (int i = 0; i < inStr.length(); i++) {UnicodeBlock ub = UnicodeBlock.of(myBuffer[i]);if (ub == UnicodeBlock.BASIC_LATIN) {sb.append(myBuffer[i]);} else if (ub == UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {int j = (int) myBuffer[i] - 65248;sb.append((char) j);} else {short s = (short) myBuffer[i];String hexS = Integer.toHexString(s);Log.e("hexS===", hexS);if (hexS.length() > 4) {hexS = hexS.substring(4, hexS.length());}Log.e("hexS===", hexS);String unicode = "\\u" + hexS;sb.append(unicode.toLowerCase());}}return sb.toString();}/*** unicode转utf-8* * @param inStr* @return String*/private static String decodeUnicode(String theString) {char aChar;int len = theString.length();StringBuffer outBuffer = new StringBuffer(len);for (int x = 0; x < len;) {aChar = theString.charAt(x++);if (aChar == '\\') {aChar = theString.charAt(x++);if (aChar == 'u') {// Read the xxxxint value = 0;for (int i = 0; i < 4; i++) {aChar = theString.charAt(x++);switch (aChar) {case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':value = (value << 4) + aChar - '0';break;case 'a':case 'b':case 'c':case 'd':case 'e':case 'f':value = (value << 4) + 10 + aChar - 'a';break;case 'A':case 'B':case 'C':case 'D':case 'E':case 'F':value = (value << 4) + 10 + aChar - 'A';break;default:throw new IllegalArgumentException("Malformed \\uxxxx encoding.");}}outBuffer.append((char) value);} else {if (aChar == 't')aChar = '\t';else if (aChar == 'r')aChar = '\r';else if (aChar == 'n')aChar = '\n';else if (aChar == 'f')aChar = '\f';outBuffer.append(aChar);}} elseoutBuffer.append(aChar);}return outBuffer.toString();}}

0 0
原创粉丝点击