博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA怎么使用escape_Java中的escape,unescape方法
阅读量:6913 次
发布时间:2019-06-27

本文共 1927 字,大约阅读时间需要 6 分钟。

package my.tools;

public class EscapeUnescape {

public static String escape(String src) {

int i;

char j;

StringBuffer tmp = new StringBuffer();

tmp.ensureCapacity(src.length() * 6);

for (i = 0; i < src.length(); i++) {

j = src.charAt(i);

if (Character.isDigit(j) || Character.isLowerCase(j)

|| Character.isUpperCase(j))

tmp.append(j);

else if (j < 256) {

tmp.append("%");

if (j < 16)

tmp.append("0");

tmp.append(Integer.toString(j, 16));

} else {

tmp.append("%u");

tmp.append(Integer.toString(j, 16));

}

}

return tmp.toString();

}

public static String unescape(String src) {

StringBuffer tmp = new StringBuffer();

tmp.ensureCapacity(src.length());

int lastPos = 0, pos = 0;

char ch;

while (lastPos < src.length()) {

pos = src.indexOf("%", lastPos);

if (pos == lastPos) {

if (src.charAt(pos + 1) == 'u') {

ch = (char) Integer.parseInt(src

.substring(pos + 2, pos + 6), 16);

tmp.append(ch);

lastPos = pos + 6;

} else {

ch = (char) Integer.parseInt(src

.substring(pos + 1, pos + 3), 16);

tmp.append(ch);

lastPos = pos + 3;

}

} else {

if (pos == -1) {

tmp.append(src.substring(lastPos));

lastPos = src.length();

} else {

tmp.append(src.substring(lastPos, pos));

lastPos = pos;

}

}

}

return tmp.toString();

}

/**

* @disc 对字符串重新编码

* @param src

* @return

*/

public static String isoToGB(String src) {

String strRet = null;

try {

strRet = new String(src.getBytes("ISO_8859_1"), "GB2312");

} catch (Exception e) {

}

return strRet;

}

/**

* @disc 对字符串重新编码

* @param src

* @return

*/

public static String isoToUTF(String src) {

String strRet = null;

try {

strRet = new String(src.getBytes("ISO_8859_1"), "UTF-8");

} catch (Exception e) {

}

return strRet;

}

public static void main(String[] args) {

String tmp = "中文";

System.out.println("testing escape : " + tmp);

tmp = escape(tmp);

System.out.println(tmp);

System.out.println("testing unescape :" + tmp);

System.out.println(unescape("%u6211%u4eec"));

System.out.println(isoToUTF(tmp));

}

}

转载地址:http://vjncl.baihongyu.com/

你可能感兴趣的文章
Android应用程序与SurfaceFlinger服务的关系概述和学习计划
查看>>
WCF WinCE 中 手机端 非字符串型 datetime,int,decimal,double 等等 传递不到WCF端的解决方案...
查看>>
iis6.0 之前版本发布silverlight程序 注意事项
查看>>
SQL SERVER 2008中启用相应的功能
查看>>
Implementing a small Cron service in C# - CodeProject
查看>>
poj-2155(二维树状数组)
查看>>
Spring MVC视图解析器:Spring MVC XmlViewResolver示例
查看>>
Managing Users
查看>>
JavaScript用JQuery呼叫Server端方法
查看>>
REST::Neo4p – PERL版本的”OGM”
查看>>
ORA-19808错误一例
查看>>
DirectShowNet 使用摄像头录像+录音
查看>>
Oracle、SQL Server、MySQL数据类型对比
查看>>
php开n次方
查看>>
eclipse自动补全的设置
查看>>
Delphi的三目运算 ifthen 和iif
查看>>
libcurl多线程超时设置不安全(转)
查看>>
3种web会话管理的方式
查看>>
Atitit 常用比较复杂的图像滤镜 attilax大总结
查看>>
ife任务刷题总结(一)-css reset与清除浮动
查看>>