java版本的escape和unescape函数
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();
}
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(tmp));
}
}
分享到:
相关推荐
JavaScript中的`escape()`和`unescape()`函数就是用于对URL进行编码和解码的经典方法。然而,在不同的编程环境下,比如Java,实现这些功能就显得尤为重要。下面,我们将深入探讨如何在Java中实现JavaScript的`escape...
总结来说,Java虽然没有内置的 `escape` 和 `unescape` 函数,但通过自定义函数,我们可以实现与JavaScript中类似的功能。同时,对于字符编码的转换,Java提供了强大的支持,如上述的 `isoToGB` 和 `isoToUTF` 方法...
Escape.java源代码是专门设计用于处理文本字符的编码和解码操作的一个类。这个类的目标是确保无论输入字符串是否已经经过`escape()`方法编码,都能够正确地进行“解码”,从而恢复原始的文本内容。 首先,让我们...
在Java 8及更高版本中,已经内置了`java.util.Base64`类来支持Base64编码和解码。例如,在`Base64EnOut.java`文件中,可能会包含以下代码: ```java import java.util.Base64; public class Base64EnOut { public...
例如,unescape函数可以将“%u4E2D%u534E”格式的字符串转换回“中文”。 五、Java后台处理 在Java后台处理中,如果使用escape编码,则需要使用自定义方法来解码,例如: ```java public String unescape(String ...
下面提供了一个简单的Java类,包括了`escape`和`unescape`两个方法。 **Escape.java** ```java public class Escape { public static String escape(String src) { int i; char j; StringBuffer tmp = new ...
JavaScript函数是编程语言中的核心组成部分,用于执行特定任务或实现特定功能。...在实际开发中,开发者会结合这些函数和其他JavaScript特性,如对象、循环、条件语句等,来构建功能丰富的Web应用程序。
对于现代浏览器来说,可以直接使用`window.btoa()`和`window.atob()`函数来完成Base64的编码和解码。 **base64.js** 虽然题目中的文件没有给出具体的`base64.js`内容,但可以参考以下简单的实现方式: ```...
unescape函数用于将unicode码转换回中文字符串。这个函数的实现原理是将输入的unicode码逐个处理,遇到“%”字符则将其后的十六进制数字转换回对应的unicode码值,遇到“%u”字符则将其后的十六进制数字转换回对应的...
在获取到参数值后,如果需要在页面上显示或使用原始的中文字符串,可以再次使用unescape函数进行解码。 ```java String zbName = request.getParameter("name"); String unescapedName = unescape(zbName); ``` ...
标签中提到了与编码和解码相关的技术,如`javascript`的`escape`和`unescape`函数,以及PHP的相关函数。`unescape`是JavaScript中用于解码`escape`编码的字符串,但在PHP中没有直接对应的功能,因此需要自定义函数如...
在JavaScript中,`escape()`函数和`unescape()`函数常用于此目的,而在Spring框架中,可能会在处理HTTP请求或生成响应时涉及字符串转义。然而,没有更多上下文,无法确定这个特定的“Escape.java”文件在实际项目中...
- `unescape()` 是 `escape()` 的对应解码函数,它将编码的字符串恢复为原始格式。它能识别并解码由 `escape()` 创建的编码字符串,包括 `%uXXXX` 形式的Unicode字符。 5. **decodeURI() 函数**: - `decodeURI()...
- **系统函数**:例如escape()、unescape()等用于URL编码解码的功能。 **1.6 浏览器内部对象** - **浏览器对象树**:介绍了浏览器对象模型(BOM),它是浏览器提供的一系列API集合。 - **navigator对象**:提供了...
在JavaScript中,URL编码和解码的函数分别是`escape(String s)`和`unescape(String s)`。不过,现代JavaScript更推荐使用`encodeURIComponent()`和`decodeURIComponent()`来编码和解码URL,因为它们更全面,能正确...
Js解混淆最关键的部分: l eval或者[removed]、VBS的EXECUTE、execScript之类的可以运行js的函数 l unescape js的混淆一般有几种方法: 1. 把代码通过escape转换成hex形式的代码,让人看不懂 2. 把代码进行简单的...
这里自定义了一个`unescape()`函数,用于处理编码过的文件名: ```java public static String unescape(String src) { // ... // 解码逻辑 // ... } ``` 在JSP页面中,调用这个函数来解码文件名,并进一步处理...
当我们在Web开发中遇到URL地址栏传递中文参数出现乱码的问题时,一个常见的解决办法是使用JavaScript中的escape函数进行转码。这个函数能够将字符串中的中文字符转换为一个十六进制形式的URL编码字符串。在某些...