`

java版本的escape和unescape

    博客分类:
  • Java
阅读更多

最近做项目的时候,前台的数据,用js的escape编码之后,到后台java无法解码,后来就改用encodeURI编码

在网上找到一个工具类,支持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));
	}
}
 原文地址:http://www.blogjava.net/emu/articles/4773.html
分享到:
评论

相关推荐

    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 编码。对接建行支付以及需要向后端传输中文数据时可以使用得到

    escape/unescape 编码的Java 实现

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

    Escape.java_java_

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

    Escape加密-UnEscape解密

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

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

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

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

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

    字符串的encode/escape

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

    java和js相互base64编码解码

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

    java 中文乱码 处理

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

    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 8及以上版本中,标准库中提供了Base64的编解码支持,这使得Base64的操作变得非常简单。 **代码结构** 项目的目录结构如下: ``` src/ ├─ main/ │ ├─ java/ │ │ └─ org/ │ │ └─ crypto/ │ │...

    将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