方法定义如下:
var decodeHtmlEntity = function(str) {
return str.replace(/(\d+)/g, function(match, dec) {
return String.fromCharCode(dec)
})
}
输入:
var str = 'JavaScript高级程序设计'
console.log(decodeHtmlEntity(str))
输出:
JavaScript高级程序设计
%E6%98%BE%E5%BE%AE%E9%95%9C 是UTF-8的加码方式%CF%D4%CE%A2%BE%B5 是GB2312的加码方式
js目前没有自己指定编码方式的加码方法。
加码方法有以下2种
encodeURI 方法
将文本字符串编码为一个有效的统一资源标识符 (URI)。
encodeURI(URIString)
必选的 URIString 参数代表一个已编码的 URI。
encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、"" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。
encodeURIComponent 方法
将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。
encodeURIComponent(encodedURIString)
必选的 encodedURIString 参数代表一个已编码的 URI 组件。
encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent,那么将返回初始的字符串。因为 encodeURIComponent 方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码。
java不同编码之间进行转换,都需要使用unicode作为中转。以utf-8转gbk为例,示例代码如下: String t = "这是一个字符串aaa111" String utf8 = new String(t.getBytes( "UTF-8")) System.out.println(utf8) String unicode = new String(utf8.getBytes(),"UTF-8") System.out.println(unicode) String gbk = new String(unicode.getBytes("GBK")) System.out.println(gbk)