window.location.hash在firefox下中文自动转码为UTF-8问题

1.window.location.hash

  window.location.hash这个属性主要是读取和写入网页位置的,我们经常会用来控制网页单页面跳转或者是控制网页位置。然而这个属性在firefox下遇到中文时却会被自动转码为UTF-8,这是火狐等相似浏览器对中文url的一些处理的不同。以下介绍一个方法可以fixed掉这个问题。

 

2.解码函数

  前面已经提到,firefox喜欢帮我们把中文转换成utf-8的编码格式,那么我们只用使用合适的解码函数对其解码皆可。

      javascript中有三个编码函数escape,encodeURI,encodeURIComponent,而其对应相应解码函数分别为:unescape,decodeURI,decodeURIComponent。

  因为其只会匹配相应编码的字符串,所以我们可以大胆的使用解码函数,不用担心未编码的字符串解码出奇怪的数据。

  只需做如下处理便能解决这个问题:

  

var hash =decodeURIComponent(window.location.hash);

  

你可能感兴趣的:(window.location.hash在firefox下中文自动转码为UTF-8问题)