今天看文章中看到了urlencode,不理解 ,故上网查了查,看到了如下的答案,在此记录下,以加深印象
urlencode编码:就是将字符串以URL编码,一种编码方式,主要为了解决url中中文乱码问题。
例如:
String mytext = java.net.URLEncoder.encode("中国", "utf-8"); //urlencode编码
String mytext2 = java.net.URLDecoder.decode(mytext, "utf-8"); //urlencode解码
这两条语句在同一个页面中的话,得到的结果是:
mytext: %E4%B8%AD%E5%9B%BD
mytex2: 中国
-
什么是URL编码,URL解码
2015-10-29 12:39:201. 例如我们要编写一个下载程序,下载的路径...因为在程序中无法直接请求一个含有中文的url,所以,我们要对它编码,我们一般会编成gbk,utf-8,但是URL编码和gbk,utf-8编码的区别是,它不会把所有字符都编码, 它只对因为在程序中无法直接请求一个含有中文的url,所以,我们要对它编码,我们一般会编成gbk,utf-8,但是URL编码和gbk,utf-8编码的区别是,它不会把所有字符都编码,
它只对非字母数字的字符借助utf-8或gbk来编码。
编码时注意 不能把整个url路径传到UrlEncoder的decode方法中,因为它也会把反斜杠/和冒号:也编码,所以域名部分是不需要编码的,取出路径部分 /图片/华仔.jpg
然后用split方法分割再分别编码,算法如下
最后获取的就是例如 "http://www.dbank.com/documents/%E5%8D%8E%E4%BB%94.jpg" 。这下可以new了
格式是百分号加16进制码的方式,这便构成了url格式的编码。
但是我们可以直接在浏览器中请求一个含有中文的url路径,这是为什么呢?我想这是因为,浏览器的内部程序作了判断,不管什么URL,它都给来了个URL编码,所以含有中文的就可以请求了
总结:如果想让URL 成功new出来,url地址必须要符合2个条件:
①不能包含中文
②符合ur地址的格式,即 http://xx.com/a/b
URL解码
经过测试 解码和编码的唯一不同是 解码时只对16进制数(中文编码)解码,而反斜杠/,英文,数字是不会有所改变的,所以解码时不需要以斜杠/ 为界限,plit()分割来解码
而是直接传入路径
-
URL编码
2019-05-06 16:01:34为什么要用它:在客户端和服务器之间传递中文时需要把它转换成网络适合的方式。 * 它不是字符编码! * 它是用来在客户端与服务器之间传递参数用的一种方式! * URL编码需要先指定一种字符...URL编码
3. URL编码
表单的类型:Content-Type: application/x-www-form-urlencoded,就是把中文转换成%后面跟随两位的16进制。
为什么要用它:在客户端和服务器之间传递中文时需要把它转换成网络适合的方式。
* 它不是字符编码!
* 它是用来在客户端与服务器之间传递参数用的一种方式!
* URL编码需要先指定一种字符编码,把字符串解码后,得到byte[],然后把小于0的字节+256,再转换成16进制。前面再添加一个%。
* POST请求默认就使用URL编码!tomcat会自动使用URL解码!
* URL编码:String username = URLEncoder.encode(username, "utf-8");
* URL解码:String username = URLDecoder.decode(username, "utf-8");
URL编码
表单的类型:Content-Type: application/x-www-form-urlencoded,就是把中文转换成%后面跟随两位的16进制
为什么要用它:在客户端和服务器之间传递中文时需要把它转换成网络适合的方式
它不是字符编码!
它是用来在客户端与服务器之间传递参数手和一种方式!
URL编码需要先指定一种字符串编码,把字符串编码后,得到byte[] 然后把小于0的字节+256,再转换成16禁止,前面再添加一个%
URL编码:String username=URLEncoder.encode(username,"utf-8");
URL解码:String username=URLDecoder.decode(usernam,"utf-8");
代码示例:
String name="张三";
String bm= URLEncoder.encode(name,"utf-8");//编码的一个过程,将字符编码成16进制的
System.out.println(bm);
String jm=URLDecoder.decode(bm, "utf-8");//解码的一个过程,将16进制解码成字符串
System.out.println(jm);
返回结果:
-
如何在get方式中,参数为url编码格式和中文时都能正常显示?
2008-11-14 10:21:55如果用这种UTF-8编码url形式也是正常的, http://localhost:8080/search.jsp?keyword=%E7%BC%96%E8%BE%91 但是如果在url中直接用汉字就不行了会出现乱码 就是 通过下面两种形式都能得到正确结果 ... -
什么是urlencode编码
2018-03-21 11:01:00今天看文章中看到了urlencode,不理解 ,故上网查了查,看到了如下的答案,在此记录下,以加深印象 urlencode编码:就是将字符串以URL编码,一种编码方式,主要为了解决url中中文乱码问题。例如:String mytext = ...转载于:https://www.cnblogs.com/w-essay/p/8615759.html
-
文件名被URL编码
2020-11-26 02:47:38<div><p>导出后的文件名是中文的时候被URL编码,类似于下边这种格式 <pre><code> %E7%BB%8F%E9%94%80%E5%95%86%E5%AE%A1%E6%A0%B8%E5%88%97%E8%A1%A8%E4%BF%A1%E6%81%AF </code></pre> 请问下这个可以通过... -
PHP怎么对URL编码和解码
2020-07-15 10:49:26为什么要对URL编码 当我们使用GET方式传递参数时,参数内容就直接会在URL地址显示出来,安全系数较低。 ...password=123456 ...URL 编码是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu等搜为什么要对URL编码
当我们使用GET方式传递参数时,参数内容就直接会在URL地址显示出来,安全系数较低。
login.php?name=test&password=123456
而且如果在参数中带有空格,则用 URL 传递参数时就会发生错误,而用 URL编码后,空格转换成%20等。
这样错误就不会发生了。对中文进行编码也是同样的情况,因此,我们需要对 URL 传递的参数进行编码,把传递的参数内容隐藏起来。
URL 编码是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu等搜索引擎中输入中文查询时候,生成经过Encode过的网页URL。
PHP怎么对URL编码
3 echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+ 4 echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_. 5 echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20 6 echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_. # 除了“-_.”之外的所有非字母数字字符都将被替换成百分号“%”后跟两位十六进制数。 # urlencode和rawurlencode的区别:urlencode将空格编码为加号“+”,rawurlencode将空格编码为加号“%20”。
还有一种方式比较常用,就是对数据进行base_64编码
$str = 'This is an encoded string'; echo base64_encode($str); $str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw=='; echo base64_decode($str);
又或者通过http_build_query() 生成 URL-encode 之后的请求字符串
<?php $data = array('foo'=>'bar', 'baz'=>'boom', 'cow'=>'milk', 'php'=>'hypertext processor'); echo http_build_query($data) . "\n"; echo http_build_query($data, '', '&'); # 以上例程会输出: foo=bar&baz=boom&cow=milk&php=hypertext+processor foo=bar&baz=boom&cow=milk&php=hypertext+processor
parse_url()还可以解析 URL,返回其组成部分
$url = 'http://username:password@hostname/path?arg=value#anchor'; print_r(parse_url($url)); echo parse_url($url, PHP_URL_PATH); # 以上会输出: Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [query] => arg=value [fragment] => anchor ) /path
-
HTTP 头部的编码方式——ASCII编码
2019-03-09 19:47:03先说结果,http请求行、响应行的编码方式都为ASCII,这也是为什么需要对url进行url编码,将非ASCII字符转为ASCII字符。 我们知道在HTTP头部中传入的信息不会被url encode,那header头如果有非ASCII码,如中文字符等,... -
encodeURI来解决URL传递时为什么需要进行两次encodeURI编码
2017-09-05 16:04:58具体说明其中具体的原理分析如下,假设页面端传入的机构名称(organame)中文是:"中”,按照下面步骤进行解码 1.第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节... -
url的三个js编码函数escape(),encodeURI(),encodeURIComponent()
2018-09-17 10:52:12网址及查询字符串中包含中文时,一般会进行url编码,常用的有三种编码方式esacpe、encodeURI、encodeURIComponent三种方式; 无论网页的原始编码是什么,一旦被Javascript编码,就都变为unicode字符. 1.escape() ... -
URL编码(encodeURIComponent和decodeURIComponent)
2016-02-04 17:03:46最近在用CI框架的时候,发现一个问题,URL的GET方式链接时,如果用中文字符的话,就会出现问题,提示:链接字符不通过,于是在网上找了很多方法,修改CI框架的config.php文件,以及URL.php文件,都有所修改,最后... -
K8飞刀 URL编码对tipask进入注入 其它工具和Hackbar却做不到
2014-07-27 13:15:32教程里忘了和其它工具对比,它们的URL编码也是不全的 对tipask 2.0 的这个URL编码后的SQL注入 也是失败的 不是说hackbar插件不好啊... 而是有些情况下 它做不到 当然对比的是 大家都有的功能 因为hackbar上的功能 ... -
【转】URL编码(encodeURIComponent和decodeURIComponent)
2015-05-30 11:35:00最近在用CI框架的时候,发现一个问题,URL的GET方式链接时,如果用中文字符的话,就会出现问题,提示:链接字符不通过,于是在网上找了很多方法,修改CI框架的config.php文件,以及URL.php文件,都有所修改,最后... -
关于容器内URL传递中文参数乱码的解决方案
2012-08-09 14:11:55在做项目时,为了让中文不出现乱码,统一一个编码方式是必不可少的,但是有的时候即使将jsp页面,一些使用到的框架编码都统一之后,还是会出现中文乱码的问题,这到底是为什么呢? 原来还需要修改一处地方: 在... -
URL传参数,服务器端接收出现中文乱码
2014-12-10 15:31:20在jsp页面中,设置页面的存储编码和页面输出时的编码: pageEncoding="utf-8"%> ...为什么会这样呢,造成这种现象的原因是Tomcat对get和post两种提交方式的处理方法不一样造成的。自从To -
建议:URL中最好不要传递中文
2010-12-03 14:37:02中文乱码一直都是web开发者比较头痛的问题,稍不注意,设置了错误的编码方式或忘记设置,就能出乎意外地看到不想看见的乱码,解决起来也比较棘手。web应用服务器、页面、数据库等等全部都设置成统一的编码GB2312,ok... -
转载django slugfield 中文解决方式
2016-06-13 16:57:481. 总体介绍 django-uuslug是一个很方便的将中文转化成拼音slug的插件. 通过使用django-uuslug, 可以保确保...django中的slug是什么: slug是一个新闻属性, django中的slug是指有效URL的一部分, 能使URL更加清... -
为什么URL在浏览器能访问,放到微信上却不能访问?
2014-05-25 15:22:01为什么URL在浏览器能访问...为了保证所有的浏览器都能正常访问URL,请务必对URL中包含特殊字符显示编码,显示编码的意思是代码中能够明确看出编码方式是UTF8、GB2312或者其它。例如像下面这样: [java] vie -
urlcode的理解
2015-12-25 16:28:55urlcode 是一种编码方式,就是把http请求串的url 进行urlcode的编码,让httpserver 可以识别,不至于http的client、server 之前出现乱码或者误解。 2. 把为什么要用urlcode进行编码呢 因为在把字符串用url... -
通过post方式上传,如果文件名带中文报错
2020-12-09 05:32:51<div><p>在实现web直传...但是COS验证的时候不知道用什么编码,官方文档没说,所以报403错误,尝试了几种解决方法都不行。</p><p>该提问来源于开源项目:tencentyun/cos-js-sdk-v5</p></div> -
Java编码算法和摘要算法
2018-07-04 21:57:00编码算法 编码算法是将一种形式转换成等价的另外一种形式。主要是为了方便某种特定场景的处理。 字母如何在计算机中表示呢?...我浏览器想给服务器发送数据,有没有什么编码方式呢? 用URL编码 一般规则 ... -
get,post请求编码解码问题
2018-11-08 11:33:53只是传输,传输的是二进制,无所谓什么编码解码,http是机器之间通讯,为什么要编码解码?机器认得字符?机器只认二进制。解码是tomcat的工作,utf8编码的字节序列被tomcat默认以iso8895-1方式解码所以有了乱码,... -
java常量池存放什么_Java 常量池存放的是什么
2021-02-26 09:40:03Json CPP 中文支持与入门示例在每一个Json Cpp自带*.cpp文件头加上: #include "stdafx.h" 将Json Cpp对自带的头文件的引用修改为单引号方式,例如json_reader.cp ...MyEclipse编码设置及字体设置等原文: ... -
到底什么是Cookie和Session?
2020-08-14 10:20:171、会话技术 一次会话可以定义为服务器和浏览器多次的数据传递和共享,会话在浏览器第一次请求时建立... 3、Cookie在Tomcat8之后支持存储中文,特殊字符需要URL编码 4、多个项目间Cookie默认不能共享,可以通过s... -
flex httpservice与java通讯的中文乱码解决。
2013-05-06 17:07:181、flex默认编码是utf-8,因此java后台设置对request的解码也为utf-8,即可获得中文,不用管tomcat中间服务器的编码是什么。 2、flex中httpservice的send方式不同,url方式为dbsvc1.request.ty -
中文乱码问题
2014-02-26 11:42:56中文乱码问题 ...这也是因为GET方式是用http的url传过来的默认用iso-8859-1编码的,所以首先得到的strCn要再用iso-8859-1编码得到原文后,再进行用utf-8(看具体页面的charset是什么utf-8或gbk)进行解 -
mysql 和jsp 的中文乱码问题
2012-02-19 13:18:38然后如果没有指定表的编码方式,它默然会采用数据库的编码方式,字段没有指定编码方式,它会有表的编码方式,所以最好在创建他们的时候就指定他们的编码方式,(我指定的是GBK,我也试过utf8 可是不知道为什么还是... -
base64转化URL背景图片
2012-06-25 16:22:40Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。 某人: 唉,我彻底废柴了,为何上面明明是中文,洒家却看不懂嘞,为什么? 好吧,我也不喜欢专业术语的... -
QuickWAP轻松解决WAP中文参数传递(转)
2019-06-04 14:00:07编写WAP程序的开发人员都知道在URL中传递中文参数是一个非常棘手的问题,要么接收不到参数值,要么接收到一堆乱码。...这是因为WAP在传递参数时均采用了UTF-8的编码方式,所以我们是不可以在WAP的URL地址中... -
base64:URL背景图片与web页面性能优化
2015-06-18 21:15:00Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。 某人: 唉,我彻底废柴了,为何上面明明是中文,洒家却看不懂嘞,为什么? 好吧,我也不喜欢专业术语的解释...