永发信息网

为什么encode两次

答案:2  悬赏:50  手机版
解决时间 2021-02-27 13:33
为什么encode两次
最佳答案
一共就是两个Decode 了,既然要两次Decode,当然就需要两次Encode 了。或许你会问,干
脆只Encode 一次,然后在java 代码里不Decode,呵呵,这个也是 不行的,这其实也就是
一 般 情 况 下 , 发 送 encodeURIComponent(parmeName)+ =
+encodeURIComponent(parmeValue);
接收时, 直接 String paramValue = request.getParameter(paramName); // 容器自动解码.
我们知道 encodeURIComponent 使用的是 UTF-8 编码规则来编的.
如果 request.getParameter(paramName) 时,容器也按 UTF-8 解的话,是正确的. 根本无须在客户端进行二次的 encodeURIComponent(...)
如果你在 jsp 程序中,能够 request.setCharacterEncoding( UTF-8 ), 并且 修改服务器
配置,让容器在解 GET 提交的参数时,使用 UTF-8.
客户端提交前不用二次编码, 接收时,也只要直接 request.getParameter(paramName) 即可
---------------------
如果因为项目需要,不能指定容器使用何种编码规则来解码提交的参数, 比如:需要接收来
自不同页面,不地编码的参数内容时。 (又或者是开发人员被这有点复杂的东东搞得晕头转
这个时候,在客户端对参数进行二次编码,可以有效的避开“提交多字节字符”的这个棘手问题。
因为第一次编码,你的参数内容便不带有多字节字符了,成了纯粹的 Ascii 字符串。(这里
把编第一次的结果叫成 [STR_ENC1] 好了。[STR_ENC1] 是不带有多字节字符的)
再编一次后,提交,接收时容器自动解一次 (容器自动解的这一次,不管是按 GBK 还是
UTF-8 还是 ISO-8859-1 都好,都能够正确的得到 [STR_ENC1])
然 后 , 再 在 程 序 中 实 现 一 次 decodeURIComponent (Java 中 通 常 使 用
java.net.URLDecoder(***, UTF-8 )) 就可以得到想提交的参数的原值。
全部回答
用decode 解码两次不久出来了,
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
婚后一方出资购房房产怎么分割
为什么不愿意火葬
飞机一秒飞多少米
小米平板1能刷双系统吗
在国际比赛中,一些来自东非高原的选手常常取
门对门,邻居家的街门比我家的街门高大有什么
佛山市畅明医疗科技有限公司地址在哪,我要去
女人把男人从小树变成森林是什么意思
金盛电器有限公司地址在什么地方,想过去办事
哈尔滨人和街小区物业只是收费,不为我们解决
我的世界怎么延长陷阱箱信号?
看见大雁有什么兆头
以下关于人力资源预测的表述,不正确的是( 
正五边形的内角是多少度
电子邮箱地址的下划线怎么打出来
推荐资讯
历史熊市最低点多少
单选题正确对待公民的权利和义务必须遵循的原
后张家窝棚我想知道这个在什么地方
为什么电脑一按右下角的回车就会弹出电源选项
婚前一方买的房产有贷款,婚后公正了共有房产
好玩不费钱的手游
打车软件优步为什么添加不起付款方式
上一次我看了一个王者荣耀的视频,就是一个猴
现在流行什么手工艺品?什么半加工品销售好,
3年内用天然气划算还是用甲醇化算(天2.06元
北京蜂业(裕华西路店)在哪里啊,我有事要去这
盐城莱茵艺术培训在哪里啊,我有事要去这个地
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?