`
liss
  • 浏览: 842737 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java中的Escape,Unescape类

阅读更多

可以把 中文编码成 %u1234 格式。也可以反编码成中文。

package tool;
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"));   
}   
} 

 

分享到:
评论

相关推荐

    escape/unescape 编码的Java 实现

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

    JavaScript escape/unescape 编码的 Java 实现

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

    java实现js的escape和unescape

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

    java版本的escape和unescape函数

    在Java编程语言中,`escape`和`unescape`函数是处理字符串时常见的工具,尤其在处理HTML、JavaScript或URL编码时。这两个函数主要用于在字符串中转换特殊字符,确保数据在网络传输或存储时的正确性和安全性。下面...

    Escape.java_java_

    `Escape.java` 源代码可能是一个工具类,专门用于处理文本中的特殊字符,这些字符可能需要转义以便正确地存储、显示或传输。让我们深入探讨Java中的字符编码和解码以及可能在`Escape.java`中涉及的相关概念。 1. **...

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

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

    Escape加密-UnEscape解密

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

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

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

    java 中文乱码 处理

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

    字符串的encode/escape

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

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

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

    java和js相互base64编码解码

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

    Java中HTML转义与反转义工具类

    这个【标题】提到的“Java中HTML转义与反转义工具类”提供了一组实用方法,帮助开发者进行这方面的操作。以下是对该工具类的详细说明: 首先,我们看到类`EscapeUtil`中定义了一个二维字符数组`TEXT`,用于存储HTML...

    解决java中文乱码全集

    本文将详细讲解几种常见的解决Java中文乱码的方法,包括如何正确处理请求参数中的中文字符、如何利用`escape()`与`unescape()`方法进行字符串编码转换、JavaScript中的编码处理技巧以及J2EE环境下系统全局的字符编码...

    JAVA日文字符检查

    根据给定文件的信息,我们可以总结出以下几个主要的知识点: ### 1. HTML Escape与Unescape方法 ...在实际应用中,这些方法通常会被封装成工具类的一部分,并广泛应用于前端表单验证、后端数据校验等场景。

    使用FreeMarker生成java代码

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

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

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

    base64,java与JavaScript实现

    其中`BASE64Controller.java`是关键的Java类,负责处理Base64相关的请求。 **BASE64Controller.java** ```java package org.crypto.controller; import java.io.UnsupportedEncodingException; import java.util....

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

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

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

    `unescape`是JavaScript中用于解码`escape`编码的字符串,但在PHP中没有直接对应的功能,因此需要自定义函数如`phpUnescape`来实现类似的功能。 总的来说,这篇文章探讨了一个实用的PHP函数,该函数可以正确地解码...

Global site tag (gtag.js) - Google Analytics