URL请求中文、符号“乱码”(解码、转码)解决方式

有的字符在url中传递的时候回编码(可能是自动的)将其符号转变为%加上ASCII码;如果在客户端或者服务端接收到的时候没有解码就会出现类似乱码的问题;其实不然只是没有进行解码

附部分编码规则

      十六进制值
1. + URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. / 分隔目录和子目录 %2F
4. ? 分隔实际的 URL 和参数 %3F
5. % 指定特殊字符 %25
6. # 表示书签 %23
7. & URL 中指定的参数间的分隔符 %26
8. = URL 中指定参数的值 %3D

这种情况就需要解码了,解决方式如下

java中的转码,这里需要自己对str也就是url的字符串进行下非空判断如果为空的话返回个空字符串

 private final static String ENCODE = "UTF-8"; //自己的编码格式
public static String getURLEncoderString(String str) {
        String result = "";
        if (null == str) {
            return "";
        }
        try {
            result = java.net.URLEncoder.encode(str, ENCODE);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return result;
    }
 

java中的解码

public static String getURLDecoderString(String str) {
        String result = "";
        if (null == str) {
            return "";
        }
        try {
            result = java.net.URLDecoder.decode(str, ENCODE);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return result;
    }

javastript中的转码

escape(String s)

javastript中的解码

unescape(String s)

原文地址:https://www.cnblogs.com/404code/p/10000278.html

时间: 2024-11-07 20:42:24

URL请求中文、符号“乱码”(解码、转码)解决方式的相关文章

url 传递中文参数乱码问题的终极解决方法。

估计很多人在做web开发的时候,都会碰到过url传递中文参数,有时候会出现乱码的问题,但有些项目或者环境,又不会有问题.当遇到乱码的时候,上网找了很多解决方案,比如: 页面设置它的编码方式,改成utf-8 或者gb2312. encodeURI(url),也有人说要2个encodeURI,如:window.location.href = encodeURI('b.html?cId='+id+"&cName="+encodeURIComponent(name)); 然后后台Str

解决URL带中文参数乱码问题

通过配置Tomcat来解决URL代中文参数乱码的问题. 首先打开Tomcat安装目录 打开conf文件夹 打开server.xml,在大约65行的位置,加一个属性 URIEncoding="UTF-8" 这样就支持Url中文参数了.

get/post请求中文出现乱码解决

请求编码即使设置为了utf-8但是做异步处理的时候,含有中文的请求任然会有乱码出现.这个时候直接在页面处理或直接在代码中处理是没用的.下面说一下本人的出来办法,本人是在页面上对中文值加了"encodeURI(中文参数)"处理,并且是两次处理,然后再在java代码中使用"java.net.URLDecoder.decode(中文参数, "UTF-8")"进行处理才解决了这个难题. 具体代码如下: 页面处理:encodeURI(encodeURI(参

jsp url传中文页面乱码

环境:jsp+tomcat6.0+nginx问题:url传递中文乱码 解决:通过tomcat 配置文件添加编码格式配置即可. 之前一直写成URLEncoding导致改了好几天没改出来.看网上方式都是说加这段.原来是单词写错了

Java中使用Jsoup抓取网页URL时出现中文汉字乱码的问题及解决办法

public static String readHtml(String myurl) { StringBuffer sb = new StringBuffer(""); URL url; try { url = new URL(myurl); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), "gbk")); String s = "";

URL传输中文参数乱码问题

同样可以选择修改Tomcat下的server.xml文件, 在conf/server.xml中的 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>加上一个参数:URIEncoding="utf-8" 之后重启tomcat服务器

获得URL含有中文出现乱码解决

如: http://www.htmlx.culub/?searchWord=工商代理 当获取链接中所对应searchWord的值时,出现 '%E5%B7%A5%E5%95%86%E4%BB%A3%E7%90%86'; 正确应该为:工商代理 利用函数 decodeURIComponent() 可以解决这问题,即: decodeURIComponent(这里放传进来的值) ; 反之则用:encodeURIComponent()

FlowPaper中文PDF乱码的一种解决办法

[关键词]FlowPaper.PDF.js.乱码 [结论]先给出解决办法,后面的大段内容只是为了记录当时的排查过程. PDF.js有全局变量对象PDFJS(1.8以上版本在pdf.js最后,1.5.x的版本没找到,在代码取值地方设置也可,下有说明),可以设置字体资源路径和方式(关于字体资源的说明可看此贴https://stackoverflow.com/questions/32764773/what-is-a-pdf-bcmap-file),如果采用默认不设置就可能会出现找不到资源文件乱码的情况

jsp中Get方式请求参数乱码的两种解决方式

第一种方式: <% //获取请求包含的下旬字符串 String rawQueryStr=request.getQueryString(); //使用URLDecoder解码祖父穿 String queryStr=URLDecoder.decode(rawQueryStr, "UTF-8"); //以&符号分解查询字符串 String paramPairs[]=queryStr.split("&"); for(String paramPair:p