`
lauphai
  • 浏览: 22941 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

String toUTF8

阅读更多
public class ConverseString {

	public static String toUTF8(String inPara) {
		char temChr;
		int ascChr;
		int i;

		StringBuffer rtStr = new StringBuffer("");

		if (inPara == null) {
			inPara = "";
		}
		for (i = 0; i < inPara.length(); i++) {
			temChr = inPara.charAt(i);
			ascChr = temChr + 0;
			rtStr = rtStr.append("&#x").append(
					Integer.toHexString(ascChr) + ";");
		}
		return rtStr.toString();
	}

	public static String WapDecode(String theString) { //解码
		char aChar;
		int len = theString.length();
		StringBuffer outBuffer = new StringBuffer(len);

		for (int x = 0; x < len;) {
			if ((theString.charAt(x) == '&')
					&& (theString.charAt(x + 1) == '#')
					&& (theString.charAt(x + 2) == 'x')) {
				int y = theString.indexOf(";", x);
				if (y < 0)
					continue;
				// Read the xxxx
				x = x + 3;
				int value = 0;
				int c = y - x;
				for (int i = 0; i < c; 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 &#Xaaaa encoding.");
					}
				} //END--for (int i=0; i<4; i++) {
				outBuffer.append((char) value);
				x++; //跳过分号
			} else {
				outBuffer.append(theString.charAt(x++));
			} //END--if (aChar == '&') {
		} //END--for(int x=0; x<len; ) {
		return outBuffer.toString();
	}

	public static String WapEncode(String theString) { //解码
		char temChr;
		int ascChr;
		int i;

		StringBuffer rtStr = new StringBuffer("");

		if (theString == null) {
			theString = "";
		}
		for (i = 0; i < theString.length(); i++) {
			temChr = theString.charAt(i);
			ascChr = temChr + 0;
			if(ascChr>=19968&&ascChr<=40869)
			rtStr = rtStr.append("&#x").append(
					Integer.toHexString(ascChr) + ";");
			else
			rtStr=rtStr.append(temChr);
		}
		return rtStr.toString();
	}
	
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics