JS如何判断URL解码后的结果是不是乱码

如题所述

判断URL解码后的结果是不是乱码如下:
1、如果是ajax:首先要看看后台进行response输出时,设置的头文件格式是不是utf-8,并且要保证输出的类型为text/html
2、判断浏览器解析的是不是utf-8:看看网页展示的中文是不是乱码,如果是,那么就有可能是没指定解析编码,指定方式如楼上所说,<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3、没有说明具体语言,以java为例,看看是否加字符过滤器,进行请求过滤,这个简单,tomcat安装的时候就可以选择安装实例,里面就有现成的,拷过来加进去就行。另外网上到处都是。
4、可以打开 源文件看看是不是源码本身是乱码,这是由于开发工具本身设置的编码格式引起的,如Eclipse、MyEclipse中都有这方面的设置
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-13
url解码后如果抛出异常,那么就是乱码。
用try-catch包住,打印日志查看即可。
第2个回答  2016-06-13
乱码是相对的,计算机识别不出来什么叫“乱”,都是人眼看的。

折衷方案:假设预先知道解码后一定存在字符“百度知道”,但解码后发现没有,那就说明解码错了,跟编码时用的字符集不一样。

参考:http://www.oschina.net/question/927134_123511?sort=default&p=1追问

因为计算机识别不了,所以我想找到一个方法让他去识别,因为我不知道我所要解的码是怎么编码的,所以只想到了这种方法来解决。。对于拿过来的URL编码不知道能不能判定是哪种编码

追答

题主这是不清楚乱码是如何产生的,所以问了这么个问题。

“乱”是人觉得乱,机器可一点都不觉得乱。

追问

可能你理解错了,我的意思是我现在需要解码,但是我不知道我要解的码是用什么编码的,所以我就用固定的一种解码格式来进行解码,这样的话,看解出来是不是正常的。你说的机器不知道是不是乱码那是肯定的,他并不知道,但是我现在需要找到一个方法让机器能够区别他是不是,这就是我想要的答案

追答

这是“伪需求”,编码与解码应该是双方约定好的。

第3个回答  2016-10-13
var address = "http://hao123.com/%2541";
//var address = "http://hao123.com/a";

//解码后的页面
var compAddress = window.decodeURIComponent(address);
var isComped = true;//是否完全解码
try{
    window.decodeURIComponent(address);
    isComped =false;//还能解码
}catch(e){};

另外%21~到%ff都有值
例如字符A的转码方式就是"%"+(65).toString("16")
你可以解码试试

第4个回答  2016-07-14
你可以转码后,当即解码试试。
相似回答