`
onedear
  • 浏览: 67939 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

url解码乱码问题解决方案

阅读更多

由于一些需求,要对referrer url的参数进行解析,但参数经常会出现很多通过不同编码的文字。

例如"广东广州"通过不同字符编码的情况:

utf-8:%E5%B9%BF%E4%B8%9C%E5%B9%BF%E5%B7%9E
gbk:%B9%E3%B6%AB%B9%E3%D6%DD

 

在解码时无法指定是编码进行解码。这样容易造成乱码。

实际上是有办法可以知道这字符串是通过什么编码的来的。代码如下

/**
 * 
 * @author onedear
 *
 */
public class CharsetUtil {
	
	private static String[] charsets = new String[]{"utf-8" , "gbk"};
	
	public static String getCharset(String word) {
		for(String charset : charsets) {
			try {
				String decodeWord = URLDecoder.decode(word, charset);
				String encodeWord= URLEncoder.encode(decodeWord, charset);
				if(word.equals(encodeWord))
					return charset;
			} catch (UnsupportedEncodingException e) {
				continue;
			}
		}
		return "utf-8";
	}
}

 用一个编码对字符串是解码再编码,的出来的值如果跟一开始的值一样,则说明这个编码是对的。

原理会尽可能的补上

1
1
分享到:
评论

相关推荐

    Delphi Base64编码,javascript解码汉字乱码解决方法演示程序(源代码)

    解决思路:进行Base64前先进行URL编码,在进行URL编码的时候,注意设置不需要SpaceAsPlus选项。 javascript代码: let decodedData = window.atob(JSONStr); let decodedData1 = decodeURIComponent(decodedData)...

    asp.net乱码解决方法

    asp.net乱码解决方法 1、从IE地址栏中直接输入这个地址,访问没错;  2、做一个静态页,其中包括这个超链接,点击访问也没错;  3、就是把这个链接添加到这个功能块中,点击访问那边接收到的是乱码。  一...

    .Net获取URL中文参数值的乱码问题解决方法总结

    本文总结分析了.Net获取URL中文参数值的乱码问题解决方法。分享给大家供大家参考,具体如下: 解决方法: 1.设置web.config文件 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。 string ...

    PHP解决URL中文GBK乱码问题的两种方法

    PHP fopen 读取带中文URL地址的一点见解PHP中文URL编解码(urlencode()rawurlencode()php中解析带中文字符的url函数分享php中url传递中文字符,特殊危险字符的解决方法php下目前为目最全的CURL中文说明php url地址栏传...

    Java中URL传中文时乱码的解决方法

    为什么说乱码是中国程序员无法避免的话题呢?这个主要是编码机制上的原因,大家都知道中文和英文的编码格式不一样,解码自然...这篇文章就给大家分享了Java中URL传中文时乱码的解决方法,有需要的朋友们可以参考借鉴。

    php url地址栏传中文乱码解决方法集合

    php地址栏传中文$_GET下来后乱码,urlencode和urldecode用法详解url编码语法: string urlencode(string str);...url解码还原 URL 编码字符串。语法: string urldecode(string str);返回值: 字符串函数

    url 编码 js url传参中文乱码解决方案

    1.配置文件web.config中 在节中加上整个网站的编码方式。 ”GB2312″ requestEncoding=”GB2312″ responseEncoding=”GB2312″/> 这样参数就以gb2312的... 然后在接收页解码: string mm = Server.URLDecode(Requext

    Java在web页面上的编码解码处理及中文URL乱码解决

    主要介绍了Java在web页面上的编码解码处理及中文URL乱码解决,文中所介绍的两种使用过滤器解决中文链接乱码的方法非常有效,需要的朋友可以参考下

    escape编码与unescape解码汉字出现乱码的解决方法

    主要介绍了escape编码与unescape解码汉字出现乱码的解决方法,需要的朋友可以参考下

    ASP.NET中url传递中文的解决方案

    ASP.NET的字符编码问题真是搞得人头疼,其中的中文很容易产生各种乱码问题,而这些乱码归根结底都是因为使用编码方式不匹配造成的。 因为常常需要通过URL字符串在不同页面间传递参数时遇到中文,必须进行编码和解码...

    python中urllib.unquote乱码的原因与解决方法

    unquote方法对应javascript中的urldecode方法,它对url进行解码,把类似”%xx”的字符替换成单个字符,例如:“法国红酒”解码后会转换成“法国红酒”,但是使用过程中,如果姿势不对,最终转换出来的字符会是乱码...

    JS对URL字符串进行编码/解码分析

    虽然escape()、encodeURI()、encodeURIComponent()三种方法都能... 以下是JS下对URL进行编/解码的各种方法: escape 方法:返回一个可在所有计算机上读取的编码 String 对象。 function escape(charString : String) :

    JavaScript中的常见问题解决方法(乱码,IE缓存,代理)

    解决AJAX中文乱码常用的两种方法 1. 在客户端进行encodeURI(utf-8也可以不做,默认),在服务器端将iso-8859-1编码转为utf-8编码 2.在客户端进行两次encodeURI,在服务器端进行一次转换。 第2种方法能解决问题的...

    ASP.NET中Request.Form中文乱码的解决方法

    一直以为,只有 Request.QueryString 接收url查询字符串含中文时可能会乱码(做好编解码工作,很容易可以避免),碰到的时候,才知道 Request.Form 接收表单的值中含中文也会乱码,以前真是很傻很天真很无知。

    解决Asp.net 读取cookie中保存的中文字符乱码问题

    cookie储存中文是会乱码的,在使用cookie储存中文的时候需要使用UrlEncode编码,同时读取cookie中的中文时需要使用功能UrlDecode解码。 正文 Cookie是保存在客户端硬盘或内存中的一小段文本信息,如网站、用户、会话...

    ASP中实现的URLEncode、URLDecode自定义函数

    在做ajax中的post时,发现在服务器端取得数据时总是乱码,网上看了些解决方法也搞不定,我post过去时是xml形式,由于乱码服务器端xml也解析不了或出错。于是在post前先把它编码,到服务器端再解码,这样问题解决了,...

    JS URL传中文参数引发的乱码问题

    解决方法如下: 1、在JS里对中文参数进行两次转码 代码如下: var login_name = document.getElementById(“loginname”).value; login_name = encodeURI(login_name); login_name = encodeURI(login_name); 2...

    js 处理URL实用技巧

    以下是JS下对URL进行编/解码的各种方法: escape方法:就对@*+/ A-Z 0-9 a-z这些字符不编码,其它非ASCII字符都会编码以%XX编码替换,解码使用unescape,escape 方法不能用来对“统一资源标识符”(URI) 进行编码。...

    网管精华 -- 深圳某公司网管收集的精华资料

    URL解码器.exe Win2000XP启动详解.txt Win2000优化技巧.txt Win2000使用纯DOS的方法.txt Win2000进程.txt windows下的EXE文件.txt Windows常用命令集.txt Windows系统安装.txt WinXP中对文件进行加密.txt ...

    js对字符串进行编码的方法总结(推荐)

    但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问题。 例如:发送页与接受页的编码格式(Charset)不一致(假设发送页面是GB2312而接收页面编码是UTF-8),使用escape()转换传输中文字串...

Global site tag (gtag.js) - Google Analytics