转码 源码

本文介绍了一种在Java中处理中文乱码的方法,通过自定义函数实现类似JavaScript中escape函数的功能,适用于不同编码环境下页面与服务器之间的数据传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static String escape(String src) throws Exception {
		int i;
		char j;
		if (src != null && src.length() > 0) {
			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) || j == '-' || j == '_'
						|| j == '.') {
					tmp.append(j);
				} else if (j < 256) {
					tmp.append("%");
					if (j < 16) {
						tmp.append("0");
					}
					tmp.append(Integer.toString(j, 16).toUpperCase());
				} else {
					tmp.append("%u");
					tmp.append(Integer.toString(j, 16).toUpperCase());
				}
			}
			return tmp.toString();
		} else {
			return "";
		}
	}

 

有时候我们在处理页面提交过来的中文产生乱码不容易解决时,比如页面选择了别的编码,Examda提示: 而 AJAX 是用的 UTF-8 字符集,我们可以对要发送到服务器的中文用 Javascript 的 escape 函数进行编码,然而 Java 中又没有相应的 unescape 函数。
而且 Java 中的 java。net。URLDecoder/java。net。URLEncoder 也对应不上 javascript 的 encodeURI/decodeURI 和 encodeURIComponent/decodeURIComponent 函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值