当URL参数中含有URL字符串的时候,而该字符串还包含有中文,这个时候处理起来会比较恶心,通过yi一段时间摸索,发现可以用base64来解决这个问题:
背景:由于需要请求目标应用不支持JSONP,需要使用另外一个应用做一个中转。客户端是UTF-8编码,作为中转的应用是GBK编码,需要请求的目标应用又是需要UTF-8编码;
常规的思路是:
前台传输来的相应编码的URL,后台就用该编码的解码,URLDecoder.decode(params,"encodeType");
但是一般的MVC框架或者应用服务器,在绑定参数的过程中都解码了一次,前台如果想要让后端按照指定编码格式手动解码,需要encodeURIComponent两遍,第一遍框架或应用服务器解码,第二遍自己手动解码
但是这里出现的问题不常规,使用常规方式又比较麻烦,所以采取比较猥琐的方式
例如:如果想要发送这样一个请求
http://localhost/mobile/getInfo.json?url=http://localhost2/mobile/getSomething.json?params=测试
前台Javascript:
var urlEncoded = Base64.encode(encodeURI(url)); //用base64来编码,encodeURI也将中文字符和其他一些字符给一并处理了 //Then, ...使用Ajax发送请求
这里用到了一个Base64 Javascript库,地址:https://github.com/dankogai/js-base64
Java端的话,使用base64解码之后就得到了encodeURI之后的URI了,直接使用HTTPClient来发送请求
import org.apache.commons.codec.binary.Base64; //推荐使用commons-codec包,不要使用sun.misc.base64decoder String urlRaw = request.getParameter("url"); String url = new String(Base64.decodeBase64(urlRaw.getBytes())); //Then, 就可以使用HTTPClient来请求数据 //....
相关推荐
在Swift编程中,URL(统一资源定位符)是用于标识互联网上特定资源的字符串,它包含协议、主机名、路径、查询参数等信息。然而,URL中可能存在一些不合法的字符,比如空格、中文字符以及其他特殊字符,这些字符可能...
以上两种方法在处理URL中的参数时,需要注意如果参数值中包含中文字符,那么在发送参数之前需要对其进行URL编码(使用 `encodeURI` 函数),在接收参数之后需要对URL编码的字符串进行解码(使用 `decodeURI` 函数)...
然而,URL参数中可能包含特殊字符,如井号(#)和其它符号,它们在URL中扮演特定的角色,可能导致无法直接获取预期的参数值。本篇知识点将详细探讨如何在PHP中获取带有特殊符号,如井号(#)的URL参数,并介绍如何使用...
`:根据编译后的正则表达式创建一个`Matcher`对象,用于与传入的URL字符串进行匹配。 - `if (matcher.find())`:如果匹配成功,则执行下一行代码。 - `return matcher.group();`:返回匹配到的第一个结果。如果...
2. **检查并验证**:在接收URL参数时,应使用相应的解码函数来处理可能的编码字符,以确保数据的准确性。 3. **明确编码方式**:在涉及到非ASCII字符的应用中,应明确指定字符集,以减少解析过程中的歧义。 #### 六...
### JSP中JS传递与解析URL参数及中文转码解码问题详解 #### 一、引言 在Web开发中,尤其是使用Java Server Pages (JSP)进行开发时,经常需要处理URL中的参数,包括参数的传递、解析以及对中文等特殊字符的处理。...
例如,对于字符串“URL中的中文字符”,我们可以通过以下代码进行转码: ```javascript let url = "URL中的中文字符"; let encodedUrl = encodeURIComponent(url); console.log(encodedUrl); // 输出 "URL%E4%B8%AD...
### Lotus中获取URL字符串参数的方法 在Web应用开发中,从URL链接中提取参数是非常常见的需求。这在基于浏览器的服务架构(例如B/S)中尤为重要,因为它有助于动态地展示页面内容或者执行某些特定操作。在Java、PHP...
- **错误处理**:可以在函数中加入更详细的错误处理逻辑,比如当URL中不存在查询字符串时返回提示信息。 - **多参数支持**:可以进一步扩展函数,使其能够同时处理多个参数的获取。 #### 六、总结 通过上述分析,...
在Java编程中,将文本内容中的符合URL格式的字符串转换为超链接是一项常见的需求,特别是在处理用户生成内容或网络爬虫应用中。本教程将详细讲解如何使用Java实现这一功能,主要涉及URL正则表达式匹配和字符串处理...
在LoadRunner的脚本编写过程中,我们经常需要处理字符串,尤其是将普通字符串转换为URL编码格式,以确保数据正确无误地发送到服务器。本文将详细介绍如何在LoadRunner中进行URL编码,以及提供的C代码和转换工具。 ...
这个工具库可能包含了一个`parseUrlParams`函数,用于从URL字符串中提取键值对,并将其转化为对象;反之,也可能有一个`createUrlQueryString`函数,用于将对象转化为URL查询字符串,方便进行HTTP请求。 其次,数字...
'一个用于检查网址URL中字符串类型及个数的函数,Write By Msdiy. '调用效果 response.Write CheckQstring("id,int,0||title,string,10",true,true,true) '具体用法如下 '参数1: Qstrings 例如 "newsid,int,0||...
在JSP开发中,处理URL编码传递中文参数是常见的需求,尤其是在构建动态网页时。这个问题主要涉及到字符编码的转换,因为不同的编码标准可能导致乱码。以下是对这个主题的详细解释: 1. **URL编码**:URL(统一资源...
在VC++编程环境中,获取浏览器窗口的地址栏URL字符串是一个常见的需求,特别是在开发与浏览器交互的应用程序时。本文将详细讲解如何使用C++来实现这一功能,主要关注于与Internet Explorer(IE)浏览器的交互。 ...
本文将深入探讨如何解析URL,拆分URL参数以及如何合并它们。我们还将通过一个名为`demo.php`的示例文件来展示实际操作。 首先,让我们了解URL的基本结构: ``` scheme://authority/path?query#fragment ``` - `...
### 常用字符串处理函数:求子字符串、字符串分割与编码转换 在现代编程语言如JavaScript中,字符串处理是日常开发中极为常见的任务之一。本文将深入探讨几个常用的字符串处理函数,包括如何求取子字符串、进行字符...
查询字符串就是URL中包含参数的部分,通过`Uri.Query`属性可以获取到。然后,利用`System.Web.HttpUtility.ParseQueryString`方法,可以将查询字符串转换为一个`NameValueCollection`对象,便于遍历和访问参数。 ...
// 假设有一个包含中文字符的字符串 var chineseText = "你好,世界!"; // 使用encodeURIComponent进行编码 var encodedText = encodeURIComponent(chineseText); console.log("编码后的结果:" + encodedText); /...
在JavaScript编程中,获取URL参数是一项常见的任务,特别是在构建动态Web应用时。URL(Uniform Resource Locator)是网页的地址,而URL参数则是附加在URL后面,用于传递额外信息的键值对。这些参数通常以问号(?)...