`
wavesun
  • 浏览: 2206 次
  • 性别: Icon_minigender_1
  • 来自: 秦皇岛
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java模拟javascript的encodeURI方法

阅读更多
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class EncodeURI {

	public static void main(String args[]) throws UnsupportedEncodingException {
		String str = "\\zhong中文!@#~$%^&*()_+ ";
		System.out.println(encode(str));
		System.out.println(URLEncoder.encode(str,"UTF8"));
	}
	
	public static String encode(String str) throws UnsupportedEncodingException{
		String isoStr = new String(str.getBytes("UTF8"), "ISO-8859-1");		
		char[] chars = isoStr.toCharArray();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < chars.length; i++) {
			if ((chars[i] <= 'z' && chars[i] >= 'a')
					|| (chars[i] <= 'Z' && chars[i] >= 'A') || chars[i] == '-'
					|| chars[i] == '_' || chars[i] == '.' || chars[i] == '!'
					|| chars[i] == '~' || chars[i] == '*' || chars[i] == '\''
					|| chars[i] == '(' || chars[i] == ')' || chars[i] == ';'
					|| chars[i] == '/' || chars[i] == '?' || chars[i] == ':'
					|| chars[i] == '@' || chars[i] == '&' || chars[i] == '='
					|| chars[i] == '+' || chars[i] == '$' || chars[i] == ','
					|| chars[i] == '#') {
				sb.append(chars[i]);
			} else {
				sb.append("%");
				sb.append(Integer.toHexString(chars[i]));
			}
		}
		return sb.toString();
	}
}
 
分享到:
评论

相关推荐

    java 中类似js encodeURIComponent 函数的实现案例

    在Java编程语言中,没有内置的方法直接等同于JavaScript中的`encodeURIComponent`函数,该函数用于编码URI(统一资源标识符)组件,确保特殊字符被适当地转换为百分比编码。然而,通过组合Java的`URLEncoder`和`...

    精通javascript

    • 5.9.htm encodeURI方法 • 5.10.htm decodeURI方法 • 5.11.htm decodeURI方法 • 5.12.htm decodeURI方法 • 5.13.htm isNaN方法 • 5.14.htm escape方法 • ...

    精通JavaScript

    • 5.9.htm encodeURI方法 • 5.10.htm decodeURI方法 • 5.11.htm decodeURI方法 • 5.12.htm decodeURI方法 • 5.13.htm isNaN方法 • 5.14.htm escape方法 • ...

    页面get请求 中文参数方法乱码问题的快速解决方法

    针对GET请求中文参数乱码的问题,这里提供一种快速解决方法:使用JavaScript的`encodeURI()`函数进行两次编码。`encodeURI()`函数是JavaScript提供的用于编码URI的函数,它不会对已经编码的字符以及特殊字符如'&'、'...

    javaWeb课程摘要整理.docx

    - **模拟类**:通过函数创建私有变量和方法,以及公有变量和方法。静态变量和函数则定义在函数外部。 - **对象扩展**:使用`prototype`属性可以扩展已存在的对象,添加新的属性和方法。 5. **JSON(JavaScript ...

    JQuery学习笔记

    - `trigger()`方法可以模拟特定事件的发生。 **19. 获取按键码** - JQuery的事件对象上的`which`属性可以获取键盘按键的键码。 #### 三、横向纵向菜单学习要点 **1. 构建多级菜单** - 使用嵌套的`&lt;ul&gt;`和`&lt;li&gt;...

    Ajax乱码解决方案

    例如,在Java中可以使用`URLDecoder.decode()`方法进行解码: ```java try { this.projectCode = URLDecoder.decode(this.projectCode, "UTF-8"); } catch (UnsupportedEncodingException e) { e....

Global site tag (gtag.js) - Google Analytics