首页 > 编程知识 正文

java url解码,urlencode解码

时间:2023-05-03 22:55:23 阅读:40166 作者:1178

% E6 % 91 % 98 % E8 % a6 % 81 % ef % BC % 9a % 0a % 20 URL decoder % 20 % E5 % 92 % 8c % 20 urlencoder % 20 % E7 % 94 % A8 % E4 % E4 E5 % ad % 97 % E7 % AC % a6 % E4 % b8 % 25 % 20 % E3 % 80 % 82 % E5 % 9c % A8 % E6 % 96 % E4 % b8 % ad % ef % bb a2 % E4 % b8 % ba5 % B9 % C9 % B9 % E6 % 99 % 25 % ef % BC % 8c % E5 % B9 % B6 % E7 % bb % 99 % E5 % 87 % ba % E4 % ba % E4 % b8 % 80.% 20 URL解码器%2furl编码器% 20 % E4 % BD % E7 % 94 % 20 % 20 urlencoder % 20 % E7 % 94 % A8 % E4 % ba % 7 % AC % a6 % E4 % b8 % B2 % E4 % B9 % e9 % B4 % E7 % 84 % E7 % b8 % B4 % ba % 25 % 20ww-form-urlencoded % 20 mime % 24 % ef % BC % 8c % E5 % a6 % 82 % E4 % b8 % E5 % 9b % be6 % 89 % E7 % a4 % ba % ef % BC % 9a % 20 % E4 % bb % AC % E5 % 90 % E5 % 88 % E7 % 9b % E5 % ba % 94 % E7 % 9a % 84 % E8 % af % B7 % 205 % 99 % A8 % E3 % 80 % 82 % E5 % 9c % A8 % E8 % BF % 99 % E4 % E6 % A0 % 8f % E4 % b8 % ad % E6 % 89 % 80 % E8 % be % 93 % E5 % 25 % 2097 % B6 % ef % BC % 8c % E6 % b5 % 8f % E8 % a7 % 88 % 8d % E5 % 8f % e9 % 80 % 81 % E7 % bb % 99 % E6 % 9c % 20 % E8 % a7 % 88 % E5 % 99 % A8 % E4 % BC % 9a % E5 % B0 % 86 % E5 % 5 % 9b % be6 % 89 % E7 % a4 % ba % ef % BC % 9a % 20 % 000a % 25 % 20d % 80 % e9 % 87 % E5 % 85 % E5 % 90 % ab % e9 % 9d f % 99 % E4 % ba % 9b % e9 % 9d % E8 % a5 % BF % E6 % AC % 25 % 20 -形式统一编码% 20 mime % 20 % E5 % ad % 97 % E7 % AC % E6 % 99 % ae9 % 80 % E5 % ad % 97 % E7 % AC % a6 % E4 % 20 % B2 % E7 % 9a % 84 % E7 % 9b % b8 % E5 % B3 % E8 % BD % E6 % 8d BC % E5 % 85 % B6 % E4 % b8 % ad % ef % BC % 20 ring % 20s % 20 enc % 29 % e9 % 9d % E6 % 80 % E6 % B3 % ef e % e9 % 80 % E5 % ad % E7 % AC % 204 % b8 % aa编码% 28 string % 20s % 20 enc % 29 % e9 % 9d % 99 % E6 % 80 % E6 % % 90应用程序% 2fx-www-form-urlencoded % 20 mini % 20 % A8 % 8b % E5 % ba % 8f % E7 % a4 % ba % E8 % 8c % 83 % E4 % ba 8 % B2 % E4 % B9 % e9 % B4 % E7 % 258 % BD % AC % E5 % 86 % EC % 20主% 28字符串% 5b % 5d % 20 args % 29 % 20 throws 2 % E6 % 88 % 90 % E6 % 99 % ae9 % 80 % a5 % a5 % E7 % AC % a6 % E4 % b8 % B2 % 00a 20 % 208 e % a5 % E4 % bb % 8

要转换,转换的方法是每个中文字符占2个字节,每个字节可以转换成2个十六进制的数字,所以每个中文字符将转换成“%XX%XX”的形式。当然,采用不同的字符集时,每个中文字符对应的字节数并不完全相同,所以使用URLEncoder和URLDecoder进行转换时也需要指定字符集。特别地,字符串应以同样的字符集进行编码和解码,否则会产生意想不到的结果,如上述程序示例所示。

二. 解决GET请求中文乱码问题

URLDecoder的一个应用场景就是解决GET请求的中文乱码问题,如下述代码所示:

Test

String param1 = request.getQueryString();

String param2 = URLDecoder.decode(param1, "utf-8");

out.print(param2.split("=")[1] + "
");

%>

特别需要注意的是,使用此方式对GET请求参数进行解码时,我们必须先对 request.getQueryString 方法的返回值(例如,“name=摩羯twdhb”)进行解码,然后再从中取出我们所需要的参数值。如果先取出参数值,然后再对参数值进行解码,则我们将得到乱码,如下图所示:

此外,对于包含中文字符的POST请求参数,我们只需在获取请求参数前通过以下代码语句进行转码即可:

request.setCharacterEncoding("utf-8");

三. URLEncoder & URLDecoder

对 String 编码时,使用以下规则:

字母、数字和字符, “a” 到 “z”、”A” 到 “Z” 和 “0” 到 “9” 保持不变;

特殊字符 “.”、”-“、”*” 和 “_” 保持不变;

空格字符 ” ” 转换为一个加号 “+”。

除此之外,所有的其他字符都是不安全的。因此需要使用一些编码机制将它们转换为一个或多个字节,每个字节用一个包含 3 个字符的字符串 “%xy” 表示,其中 xy 为该字节的两位十六进制表示形式,推荐的编码机制是 UTF-8。例如,使用 UTF-8 编码机制,字符串 “The string ü@foo-bar” 将转换为 “The+string+%C3%BC%40foo-bar”,因为在 UTF-8 中,字符 ü 编码为两个字节,C3 (十六进制)和 BC (十六进制),字符 @ 编码为一个字节 40 (十六进制)。

关于 URLDecoder 类的使用,转换过程正好与 URLEncoder 类使用的过程相反,此不赘述。

关于JSP中文乱码更多的介绍,包括 页面乱码、参数乱码、表单乱码、源文件乱码 等知识,见我的另外两篇博客:《JSP中文乱码问题终极解决方案(上)》 和 《JSP中文乱码问题终极解决方案(下)》。

引用

到此这篇关于java使用URLDecoder和URLEncoder对中文字符进行编码和解码的文章就介绍到这了,更多相关java 文字符编码解码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。