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

java版本的escape和unescape函数

阅读更多
转载自http://www.blogjava.net/emu/articles/4773.html
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));
}
}
分享到:
评论

相关推荐

    java实现js的escape和unescape

    JavaScript中的`escape()`和`unescape()`函数就是用于对URL进行编码和解码的经典方法。然而,在不同的编程环境下,比如Java,实现这些功能就显得尤为重要。下面,我们将深入探讨如何在Java中实现JavaScript的`escape...

    Java实现JS中的escape和UNescape代码分享

    总结来说,Java虽然没有内置的 `escape` 和 `unescape` 函数,但通过自定义函数,我们可以实现与JavaScript中类似的功能。同时,对于字符编码的转换,Java提供了强大的支持,如上述的 `isoToGB` 和 `isoToUTF` 方法...

    Java文本字符编码解码操作类 Escape.java源代码.rar

    Escape.java源代码是专门设计用于处理文本字符的编码和解码操作的一个类。这个类的目标是确保无论输入字符串是否已经经过`escape()`方法编码,都能够正确地进行“解码”,从而恢复原始的文本内容。 首先,让我们...

    java和js相互base64编码解码

    在Java 8及更高版本中,已经内置了`java.util.Base64`类来支持Base64编码和解码。例如,在`Base64EnOut.java`文件中,可能会包含以下代码: ```java import java.util.Base64; public class Base64EnOut { public...

    JavaScript、JavaWeb对汉字等的编码与解码处理

    例如,unescape函数可以将“%u4E2D%u534E”格式的字符串转换回“中文”。 五、Java后台处理 在Java后台处理中,如果使用escape编码,则需要使用自定义方法来解码,例如: ```java public String unescape(String ...

    java 中文乱码 处理

    下面提供了一个简单的Java类,包括了`escape`和`unescape`两个方法。 **Escape.java** ```java public class Escape { public static String escape(String src) { int i; char j; StringBuffer tmp = new ...

    JavaScript函数小集锦

    JavaScript函数是编程语言中的核心组成部分,用于执行特定任务或实现特定功能。...在实际开发中,开发者会结合这些函数和其他JavaScript特性,如对象、循环、条件语句等,来构建功能丰富的Web应用程序。

    base64,java与JavaScript实现

    对于现代浏览器来说,可以直接使用`window.btoa()`和`window.atob()`函数来完成Base64的编码和解码。 **base64.js** 虽然题目中的文件没有给出具体的`base64.js`内容,但可以参考以下简单的实现方式: ```...

    Java实现中文字符串与unicode互转工具类

    unescape函数用于将unicode码转换回中文字符串。这个函数的实现原理是将输入的unicode码逐个处理,遇到“%”字符则将其后的十六进制数字转换回对应的unicode码值,遇到“%u”字符则将其后的十六进制数字转换回对应的...

    JSP页面中文传递参数使用escape编码

    在获取到参数值后,如果需要在页面上显示或使用原始的中文字符串,可以再次使用unescape函数进行解码。 ```java String zbName = request.getParameter("name"); String unescapedName = unescape(zbName); ``` ...

    php 正确解码javascript中通过escape编码后的字符

    标签中提到了与编码和解码相关的技术,如`javascript`的`escape`和`unescape`函数,以及PHP的相关函数。`unescape`是JavaScript中用于解码`escape`编码的字符串,但在PHP中没有直接对应的功能,因此需要自定义函数如...

    javascript and Spring3.0下载地址

    在JavaScript中,`escape()`函数和`unescape()`函数常用于此目的,而在Spring框架中,可能会在处理HTTP请求或生成响应时涉及字符串转义。然而,没有更多上下文,无法确定这个特定的“Escape.java”文件在实际项目中...

    JavaScript中的编码和解码函数

    - `unescape()` 是 `escape()` 的对应解码函数,它将编码的字符串恢复为原始格式。它能识别并解码由 `escape()` 创建的编码字符串,包括 `%uXXXX` 形式的Unicode字符。 5. **decodeURI() 函数**: - `decodeURI()...

    Java.Script].杨正华

    - **系统函数**:例如escape()、unescape()等用于URL编码解码的功能。 **1.6 浏览器内部对象** - **浏览器对象树**:介绍了浏览器对象模型(BOM),它是浏览器提供的一系列API集合。 - **navigator对象**:提供了...

    学习java开发中的特殊字符.pdf

    在JavaScript中,URL编码和解码的函数分别是`escape(String s)`和`unescape(String s)`。不过,现代JavaScript更推荐使用`encodeURIComponent()`和`decodeURIComponent()`来编码和解码URL,因为它们更全面,能正确...

    解javascript 混淆加密收藏

    Js解混淆最关键的部分: l eval或者[removed]、VBS的EXECUTE、execScript之类的可以运行js的函数 l unescape js的混淆一般有几种方法: 1. 把代码通过escape转换成hex形式的代码,让人看不懂 2. 把代码进行简单的...

    彻底解决jsp中用SmartUpload上传附件中文乱码问题实用.pdf

    这里自定义了一个`unescape()`函数,用于处理编码过的文件名: ```java public static String unescape(String src) { // ... // 解码逻辑 // ... } ``` 在JSP页面中,调用这个函数来解码文件名,并进一步处理...

    地址栏传递中文参数乱码在js里用escape转码

    当我们在Web开发中遇到URL地址栏传递中文参数出现乱码的问题时,一个常见的解决办法是使用JavaScript中的escape函数进行转码。这个函数能够将字符串中的中文字符转换为一个十六进制形式的URL编码字符串。在某些...

Global site tag (gtag.js) - Google Analytics