`
icsnowing
  • 浏览: 40688 次
  • 性别: 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代码分享

    在PHP和Python中都有类似JS中的escape和UNescape函数的功能,那么Java语言中到底有没有类似的方法呢?本文就来介绍一下Java实现JS中的escape和UNescape转码方法,需要的朋友可以参考下

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

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

    JavaScript函数小集锦

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

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

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

    JavaScript中的编码和解码函数

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

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

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

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

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

    javascript编码的几个方法详细介绍

    escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。 参数 描述 string 必需。要被转义或编码的字符串。   返回值 已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列...

    url特殊字符处理方法

    在JavaScript中,使用escape(String s)和unescape(String s)函数来进行URL的编码和解码。 此外,还可以使用自定义的函数来进行URL的编码,例如: ```javascript function URLencode(sStr){ return escape(sStr)....

    解javascript 混淆加密收藏

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

    JavaScript语言参考手册

    内含: JavaScript语言参考手册.pdf (主要资源) 另外附上: MS-JScript.chm MS-script56-2006.chm MS-VBScript.chm // // ---- JavaScript语言参考手册 目录 ---- ...这一章简单介绍了 ...构造函数和方法 索引

    json对象转为字符串,当做参数传递时加密解密的实现方法

    在简单的场景下,JavaScript提供了`escape()`和`unescape()`两个函数来进行基础的字符编码和解码。`escape()`函数会将字符串中的某些字符替换为%xx形式的转义序列,而`unescape()`函数则负责将这些转义序列还原。 `...

    url 特殊字符 传递参数解决方法

    - **`escape()` 和 `unescape()`**:在Java中,`escape()` 对非ASCII字符进行编码,而 `unescape()` 则进行解码。它们不会使用UTF-8编码。 - **`encodeURI()` 和 `decodeURI()`**:这两个函数适用于处理完整的URI...

    ajax乱码解决办法

    可以使用`decodeURIComponent`和`unescape`函数。 **4. 页面编码一致性** 确保HTML页面的编码与Ajax请求和响应的编码一致。在HTML头部添加`&lt;meta&gt;`标签指定页面的字符编码: ```html ``` **5. JSP页面** 对于使用...

    javascript URL编码和解码使用说明

    使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的 encodeURI函数编码的URL,结果就不一样。 javaScript中的编码方法: escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、...

    微软JavaScript手册

    学习JAVA的好帮手,希望有所帮助。欢迎使用 JScript 语言参考 这些方便实用的信息将帮助您了解 JScript 的各个部分。 在“字母顺序的关键字列表”中,可以找到按字母顺序列出的所有 JScript 语言的主题。如果只需要...

    精通JavaScript

    • 7.5.htm unescape()函数的使用 • 7.6.htm escape()函数的使用 • 7.7.htm 进制转换 • 7.8.htm isNaN() • 7.9.htm 进制转换 • 7.10.htm 产生1~6间的随机数 ...

    精通javascript

    • 7.5.htm unescape()函数的使用 • 7.6.htm escape()函数的使用 • 7.7.htm 进制转换 • 7.8.htm isNaN() • 7.9.htm 进制转换 • 7.10.htm 产生1~6间的随机数 ...

    CSS和Javascript简单复习资料

    - `escape/unescape`:对字符串进行编码和解码。 - `eval`:将字符串作为JavaScript代码执行。 JavaScript与Java的一个关键区别在于,JavaScript的字符串是基本类型,这意味着当你传递字符串时,实际上是传递了该...

Global site tag (gtag.js) - Google Analytics