js中文亂碼問題,還有比這更詭異的麼?

2021-10-06 11:51:42 字數 1183 閱讀 3949

經歷了一次」頑固而詭異的js中文亂碼「問題,特將問題排查過程記錄下來,加深印象、吸取教訓。

如果你也遇到類似的問題,又碰巧看到了這篇文章,希望能夠對你有所幫助和啟示。

前端a.html檔案引用了乙個含有中文配置資訊的extend.js檔案。其中extend.js本身的編碼格式是utf-8

現象2:如果在a.htmlextend.js的引入時加上乙個版本號,比如extend.js?v=1,則亂碼問題消失。

一開始關注點在前2個現象上面,尤其是注意力侷限於「最終亂碼還是不亂碼」的結果上,感覺「特別詭異」。android和ios機型表現上的差異,給問題排查增加了迷惑性。

好,其實問題的根結就在於短鏈結跳轉a.html的過程中

短鏈結指向乙個index.html,裡面就一段js,按照某種邏輯,通過location.replace()跳轉到最終頁面a.html

問題就在於index.html裡面也引入了extend.js,但未指定編碼格式——index.html本身未指定,通過引入extend.js時也未指定編碼格式。

1、extends.js本身是沒問題的,編碼方式為utf-8

5、ios上不會有問題,是因為不指定,預設就是utf-8。(還有一種可能是:ios在從快取載入js的時候,判斷更細緻嚴格——進入a.html頁面判斷快取中雖然有extend.js,但是是按照非utf-8方式載入的,不符合要求,因此再重新按照utf-8編碼載入一次)。

如果你也有遇到類似的問題,希望本文對你能有所幫助。

js 獲取url 引數 中文亂碼問題

最近在做的專案當中有乙個需要在頁面上獲取url 引數的需求。通過搜尋 在網上找到了 下面這個方法 html view plain copy function getquerystring name 但當引數中有中文的時候,就會出現亂碼的問題。通過查詢資料 原來是瀏覽器預設使用的是 encodeuri...

js 獲取url 引數 中文亂碼問題

最近在做的專案當中有乙個需要在頁面上獲取url 引數的需求。通過搜尋 在網上找到了 下面這個方法 function getquerystring name 但當引數中有中文的時候,就會出現亂碼的問題。通過查詢資料 原來是瀏覽器預設使用的是 encodeuri 對漢字進行的編碼 所以在解碼的時候就需要...

js 獲取url 引數 中文亂碼問題

最近在做的專案當中有乙個需要在頁面上獲取url 引數的需求。通過搜尋 在網上找到了 下面這個方法 function getquerystring name 但當引數中有中文的時候,就會出現亂碼的問題。通過查詢資料 原來是瀏覽器預設使用的是 encodeuri 對漢字進行的編碼 所以在解碼的時候就需要...