ava.net中有URLEncoder类,但是它对参数中的所有字符都进行编码,有时是不需要的。
public class URLUTF8Encoder
{
final static String[] hex = {
"%00", "%01", "%02", "%03", "%04", "%05", "%06", "%07",
"%08", "%09", "%0a", "%0b", "%0c", "%0d", "%0e", "%0f",
"%10", "%11", "%12", "%13", "%14", "%15", "%16", "%17",
"%18", "%19", "%1a", "%1b", "%1c", "%1d", "%1e", "%1f",
"%20", "%21", "%22", "%23", "%24", "%25", "%26", "%27",
"%28", "%29", "%2a", "%2b", "%2c", "%2d", "%2e", "%2f",
"%30", "%31", "%32", "%33", "%34", "%35", "%36", "%37",
"%38", "%39", "%3a", "%3b", "%3c", "%3d", "%3e", "%3f",
"%40", "%41", "%42", "%43", "%44", "%45", "%46", "%47",
"%48", "%49", "%4a", "%4b", "%4c", "%4d", "%4e", "%4f",
"%50", "%51", "%52", "%53", "%54", "%55", "%56", "%57",
"%58", "%59", "%5a", "%5b", "%5c", "%5d", "%5e", "%5f",
"%60", "%61", "%62", "%63", "%64", "%65", "%66", "%67",
"%68", "%69", "%6a", "%6b", "%6c", "%6d", "%6e", "%6f",
"%70", "%71", "%72", "%73", "%74", "%75", "%76", "%77",
"%78", "%79", "%7a", "%7b", "%7c", "%7d", "%7e", "%7f",
"%80", "%81", "%82", "%83", "%84", "%85", "%86", "%87",
"%88", "%89", "%8a", "%8b", "%8c", "%8d", "%8e", "%8f",
"%90", "%91", "%92", "%93", "%94", "%95", "%96", "%97",
"%98", "%99", "%9a", "%9b", "%9c", "%9d", "%9e", "%9f",
"%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%a7",
"%a8", "%a9", "%aa", "%ab", "%ac", "%ad", "%ae", "%af",
"%b0", "%b1", "%b2", "%b3", "%b4", "%b5", "%b6", "%b7",
"%b8", "%b9", "%ba", "%bb", "%bc", "%bd", "%be", "%bf",
"%c0", "%c1", "%c2", "%c3", "%c4", "%c5", "%c6", "%c7",
"%c8", "%c9", "%ca", "%cb", "%cc", "%cd", "%ce", "%cf",
"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7",
"%d8", "%d9", "%da", "%db", "%dc", "%dd", "%de", "%df",
"%e0", "%e1", "%e2", "%e3", "%e4", "%e5", "%e6", "%e7",
"%e8", "%e9", "%ea", "%eb", "%ec", "%ed", "%ee", "%ef",
"%f0", "%f1", "%f2", "%f3", "%f4", "%f5", "%f6", "%f7",
"%f8", "%f9", "%fa", "%fb", "%fc", "%fd", "%fe", "%ff"
};
public static String encode(String s)
{
StringBuffer sbuf = new StringBuffer();
int len = s.length();
for (int i = 0; i < len; i++) {
int ch = s.charAt(i);
if ('A' <= ch && ch <= 'Z') { // 'A'..'Z'
sbuf.append((char)ch);
} else if ('a' <= ch && ch <= 'z') { // 'a'..'z'
sbuf.append((char)ch);
} else if ('0' <= ch && ch <= '9') { // '0'..'9'
sbuf.append((char)ch);
} else if (ch == ' ') { // space
sbuf.append('+');
} else if (ch == '-' || ch == '_' // unreserved
|| ch == '.' || ch == '!'
|| ch == '~' || ch == '*'
|| ch == '\'' || ch == '('
|| ch == ')') {
sbuf.append((char)ch);
} else if (ch <= 0x007f) { // other ASCII
sbuf.append(hex[ch]);
} else if (ch <= 0x07FF) { // non-ASCII <= 0x7FF
sbuf.append(hex[0xc0 | (ch >> 6)]);
sbuf.append(hex[0x80 | (ch & 0x3F)]);
} else { // 0x7FF < ch <= 0xFFFF
sbuf.append(hex[0xe0 | (ch >> 12)]);
sbuf.append(hex[0x80 | ((ch >> 6) & 0x3F)]);
sbuf.append(hex[0x80 | (ch & 0x3F)]);
}
}
return sbuf.toString();
}
}
对比:
String param = "Panorama Mundial (CNN en Español)";
String s1 = java.net.URLEncoder.encode(param,"utf-8");
String s2 = URLUTF8Encoder.encode(param);
s1: Panorama+Mundial+%28CNN+en+Espa%C3%B1ol%29
s2: Panorama+Mundial+(CNN+en+Espa%c3%b1ol)
分享到:
相关推荐
在页面的url中使用encodeURI(encodeURI(中文)),对中文进行编码,并在服务器的java程序中使用URLDecoder.decode(中文, “UTF-8”)进行解码即可; 如果url中需要传递+、#、?等特殊符号,可以使用encodeURIComponent...
smarty可以直接对url进行编码, 比如<... 解决办法: 采用js对URL中的汉字进行escape编码。 <a> 这样点击链接后的效时: 引用:http://127.0.0.1/shop/product_list.php?p_sort=PHP%u5F00%u53D1%u8D44%u6E90%u7
如果希望有短一点的方式对参数编码,可以采用 base64 编码方式对字符串进行编码,但是 base64 编码方式不能处理 JavaScript 中的中文,因为 JavaScript 中的中文都是以 UTF-16 方式保存的。 而 base64 只能处理单...
也就是说,我们的API中不存在编码覆盖参数。 原料药 URL和URLSearchParams类 和导出提供了主要的API,它以各种方式(包括例如USVString转换)遵循规范的行为。 该库的大多数使用者都想使用这些。 低级URL标准API ...
3、新增“编码_URL编码_局部”,快速编码提交数据参数;。4、新增“编码_URL解码_局部”,对应“编码_URL编码_局部”编码的数据解码;。5、新增“编码_UTF8编码”,支持宽字节或窄字节UTF8编码;。6、新增“编码_UTF...
功能: * Parse URL并易于浏览字段的块 *自动或手动重定向 *自动刷新 *手动和自动URL编码/解码参数 * Base64 Params编码/解码 *自动建议功能 *建议经理(在选项页面上) *排序参数(易于找到您正在寻找的参数) *...
如我在连接<a>A&T Plastic,在接受参数的时候就没办法读取name参数的正确值,怎么样才能正确读取,还有其他的特殊字符 字符 特殊字符的含义 URL编码 # 用来标志特定的文档位置 # % 对特殊字符进行编码 % & 分隔不同...
1、 在提交参数时,没有对中文参数进行URL编码 2、 Tomcat服务器默认采用的是IOS8859-1编码(不支持中文)得到参数值 解决: 1、 进入android项目,在其中要提交参数的时候,对参数的值进行编码: 代码如下:...
*手动和自动的url编码/解码参数 * Base64 params编码/解码 *自动建议功能 *建议管理器(在选项页面上) *排序参数(很容易找到你正在寻找的) *所有主要操作的键盘快捷键 *在当前/新标签或新窗口打开提交的网址 *...
3、新增“编码_URL编码_局部”,快速编码提交数据参数;4、新增“编码_URL解码_局部”,对应“编码_URL编码_局部”编码的数据解码;5、新增“编码_UTF8编码”,支持宽字节或窄字节UTF8编码;6、新增“编码_UTF8解码...
JSP中文乱码问题综述,中文乱码解决大全,表单使用Post方式提交后接收到的乱码问题,表单get提交方式的乱码处理方式,上传文件时的乱码解决,Java代码关于url请求,接受参数的乱码,关于jsp在MyEclipse中打开的乱码问题,...
参数 Url, 文本型, , 提交的网站Url.action后面的地址.需要补全 .参数 Referer地址, 文本型, , Referer地址 .参数 Cookie信息, 文本型, , Cookie信息 .参数 提交数据, 文本型, , 提交到网站的数据 .子程序 PostXml...
v1.8:将追加到上传接口url后的参数的提交方式更改为POST,避免参数中含有特殊字符(如base64中的+号)时产生错误。如果之前的版本中有传递额外的参数到上传接口的,更新此版本后请自行修改接口文件中获取参数的方式...
花了三个钟头,反复查,发现,原来是改了处理页面的返回头信息。 加上了 application/x-... ajax提交表单数据的方式介绍 Url参数提交数 代码如下: [removed][removed] [removed] function checkCorpID()//检测客户
功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对参数值做urlencode 输入:Dictionary, string> dicArray 需要拼接的数组 Encoding code 字符编码 输出:string 拼接完成以后的字符...
自己写的数据库装载工具,平时工作中用于装载大文本文件到数据库表,也能直接装载excel,不过excel只能使用第一个sheet,且不支持合并的单元格。 jdk要求版本1.6及以上。 使用方法: java -jar lynload.jar,即可看到...
当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为参数传递到service()方法中。 Servlet也可以执行ServletRequest接口和ServletResponse接口。...
1.请求网址 请求网址输入你在公众平台开发模式下的那个URL(如下图),这个工具不带有验签算法之类的,所以不用填写Token了,但是在WEB程序中为了安全我们是需要验签的,因此,你要加上只有你知道的参数比如debug=...
• 改进了从 Adobe Reader 或其它程序中复制 ftp:// 类型的 URL 时对剪贴板的监视处理 • 改进了当处理服务器脱机错误消息时的 PRET 支持 (drftpd) 修正 • 某种情况下, 用户初次断开与站点的连接会触发自动重新...