亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

瀏覽器的Chart set(UTF8,GBK等)設置對Javascript無效?

瀏覽器的Chart set(UTF8,GBK等)設置對Javascript無效?

江戶川亂折騰 2019-04-06 16:57:30
現象打開weibo.com登錄,跳轉到首頁通過瀏覽器菜單更改編碼,觀察到:當編碼設置為UTF8時,整個頁面正常;(測試環境:Chrome,Safari)當編碼設置為GBK/Big5/ShfitJIS(一種日文編碼),除title(瀏覽器Tab里顯示的)和頁面底部的文本亂碼外,頁頭及頁面主體都正常顯示(測試環境:Chrome,Safari)當編碼設置為ISO2022-KR(一種韓文編碼)時,title和頁面底部的文本亂碼,頁頭及頁面主體空白(測試環境:Safari)無論瀏覽器編碼怎么改變,服務端返回的內容都是UTF-8編碼猜測上述會亂碼的title和頁面底部都是以UTF8中文寫在HTML源碼中的,HTML源碼由瀏覽器渲染,故瀏覽器編碼設置不是UTF8時就會亂碼。而頁頭、頁面主體的內容是以utf8串(如\u4e2d\u56fd\u5de5\u5546\u94f6\u884c\u7535\u5b50\u94f6\u884c)的形式寫在script標簽中,或者從服務端ajax請求得到的瀏覽器只負責Javascript語法解析及執行,不負責JS輸出中文的編碼展示,故,jsoutput里的中文顯示跟瀏覽器的Charset設置無關求助1.上面只是我的猜測,我分別用browserjavascriptcharsetrender在google上搜索了半天,沒找到官方權威的說法來證實我的猜測,求前端專家指點迷津,給個權威的鏈接。2.切換成韓文為什么js也不正常了呢?是韓文編碼環境下,script標簽里的js語法解析出錯了嗎?
查看完整描述

2 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

打開Safari的Web檢查器,切換到問題標簽。然后修改瀏覽器的編碼設置,會觀察到當切換為韓文的時候,加載.js會有很多出錯信息。而GBK/Big5/ShiftJIS不會。因此估計是ISO2022-KR編碼“入侵”了ASCII的前127個字符造成。Google了一下,發現韓文編碼典型的一個做法是將反斜杠“\”轉換為韓元字符“?”。因此,加載一個充斥著反斜杠的.js自然就會出錯了。更新前面說的不完全正確,因為ShiftJIS也占用了\,BIG5也使用了正常ASCII字符的編碼。進一步觀察Web檢查器,發現當編碼設置為GBK/Big5/ShiftJIS,實際加載的.js還是UTF-8的,而換成ISO2022-KR則不然。這應該是瀏覽器具體實現的問題。
                            
查看完整回答
反對 回復 2019-04-06
  • 2 回答
  • 0 關注
  • 225 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號