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();
}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值