`
爱微idol
  • 浏览: 4990 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java的escape和unescape

 
阅读更多
/*
* escape()和unescape的用法
*
*/
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(); 
    }
分享到:
评论

相关推荐

    escape/unescape 编码的Java 实现

    使用java对字符串进行unicode编码和解码。源程序

    java版本的escape和unescape函数

    `EscapeUnescape.java`文件可能包含了演示`escape`和`unescape`功能的示例代码。通常,这样的代码会包含对字符串进行编码和解码的函数,以便开发者能更好地理解它们的工作方式和用途。在实际的开发中,这些函数可以...

    java实现js的escape和unescape

    下面,我们将深入探讨如何在Java中实现JavaScript的`escape()`和`unescape()`方法,以及它们的具体工作原理和应用。 ### Java实现JS的`escape`和`unescape`方法 #### `escape`方法:URL编码 在JavaScript中,`...

    JavaScript escape/unescape 编码的 Java 实现

    本工具类用java实现了JavaScript escape/unescape 编码。对接建行支付以及需要向后端传输中文数据时可以使用得到

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

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

    Escape.java_java_

    - **JSON或XML转义**:如果`Escape.java`用于处理这些格式,那么它可能包含了对`, `&gt;`, `&`, `"`和`'`的转义和unescape功能。 6. **字符集转换**: `Escape.java`可能包含将字符串从一种字符集转换到另一种字符集...

    Escape加密-UnEscape解密

    Escape加密-UnEscape解密 每一位站长必备的好工具,精而巧!

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

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

    字符串的encode/escape

    `java.lang.StringEscapeUtils`类则提供了对字符串中特殊字符的转义和unescape功能,适用于HTML、XML等场景。 现在,让我们看看提供的`EscapeUnescape.java`文件。这个文件很可能包含了对`encode`和`escape`操作的...

    java 中文乱码 处理

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

    java和js相互base64编码解码

    在Java和JavaScript中,Base64编码和解码是两个重要的功能,用于处理这种编码格式。下面将详细阐述这两个编程语言中实现Base64编码和解码的方法。 首先,让我们关注Java。在Java 8及更高版本中,已经内置了`java....

    JAVA日文字符检查

    HTML Escape与Unescape方法 #### HTMLEscape方法 - **功能**: 将特殊字符转换为HTML实体,以便安全地显示在网页上。 - `&` 转换为 `&amp;` - `转换为 `&lt;` - `&gt;` 转换为 `&gt;` - `"` 转换为 `&quot;` - `\...

    使用FreeMarker生成java代码

    4. 转义:`&lt;#escape&gt;`和`&lt;#unescape&gt;`可以用来改变变量的输出方式,比如进行HTML转义。 接下来,创建一个FreeMarker模板文件(如`templete.ftl`),在这个文件中定义Java代码的结构和变量占位符。例如,你可以创建...

    base64,java与JavaScript实现

    这个Java控制器提供了两个端点:`/encode` 和 `/decode`,分别用于Base64编码和解码操作。 #### JavaScript中的Base64编码实现 在Web开发中,JavaScript同样需要对Base64进行处理。对于现代浏览器来说,可以直接...

    将js escape处理后的汉字再反翻译成汉字

    将js escape处理后的汉字再反翻译成汉字,相当于js的unescape

    解决java中文乱码全集

    为了处理字符串中的特殊字符,Java提供了`escape()`和`unescape()`两个方法来进行编码转换。 **代码示例:** ```java public class Escape { public static String escape(String src) { int i; char j; ...

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

    这个工具类主要用于解决中文字符串与unicode码之间的转换问题,提供了escape和unescape两个函数,分别用于将中文字符串转换为unicode码和将unicode码转换回中文字符串。 在了解这个工具类之前,我们需要了解什么是...

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

    需要注意的是,使用escape/unescape方法进行编码和解码是JavaScript特有的,并不是Java标准库中的方法。因此,确保在JSP页面中获取到的是正确编码的字符串,且在客户端和服务器端的编码和解码方法要保持一致。 另外...

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

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

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

    在后台通过一个类的方法再转回来: Escape.unescape(request.getParameter(“name”)); Escape类如下: 代码如下: package com.laneasy.hy.util; /** * js编转码java实现类. * * @author yangjinde */ pu

Global site tag (gtag.js) - Google Analytics