前端漢字encode 前端中文編碼問題

2021-10-16 16:20:08 字數 1124 閱讀 7702

測試環境,windows xp,ie6、ie8、firefox、chrome,測試結果可能會根據作業系統不同,有所差異

前端需求中經常會碰到前後臺中文編碼的問題,以下羅列了meta charset設定為gbk或utf-8的情況下,中文的編碼的場景和結論:

a鏈結中帶中文

chrome、firefox會根據meta charset屬性,自動轉碼,且編碼帶%

ie也會根據meta charset屬性,傳遞資料,不帶%

有時會碰到前端拼接url中帶中文的問題,這時需要注意,最好對中文部分通過js的encodeuricomponent編碼。注意不能對整個url進行encodeuricomponent編碼,因為encodeuricomponent會對url中的"/"轉碼。

form表單提交

無論get、post提交,ie、chrome、firefox,均會根據meta charset屬性,轉碼,編碼帶%。

在chrome、firefox下,若表單帶accept-charset屬性,則會根據該屬性決定提交中文的編碼

ajax請求(原生)

get請求

chrome根據meta charset屬性,自動轉碼,且編碼帶%

firefox無論utf-8還是gbk,均使用utf-8編碼,編碼帶%

ie無論utf-8還是gbk,均使用gbk編碼

post請求

ie、chrome、firefox,均會使用utf-8編碼,無%

其中chrome、firefox會自動修改charset為utf-8,ie不修改

小結前端與後台合作,遇到中文問題,需要做好溝通,指定中文編碼

碰到需要前端拼接url中帶中文,需要對鏈結中的中文進行encodeuricomponent編碼,以utf-8的格式傳過去。如果後台需要使用gbk的編碼,最好拒絕,因為前端對編碼的轉換較弱。

form中的中文,根據meta charset決定提交的中文編碼,gbk編碼提交就是gbk,utf-8編碼提交就是utf-8

ajax提交(原生),get請求,對中文進行encodeuricomponent編碼,post請求預設為utf-8編碼。若使用jquery的get請求,用data傳遞資料過去,jquery會自動幫你將中文進行encodeuricomponent編碼。

參考資料

monaco editor新一代前端UI編輯器

業務場景 編輯自動化指令碼,開放自動編輯,需要採用一款編輯器,之前有在其他專案看到,發現這款適用於前端的編輯器真心不錯,良心推薦!這是官方位址 可以體驗下強大之處 基本包涵了大部分的idea和vscode的功能 廢話不多說,直接上手vue專案對接,步驟如下 1安裝 npm install monac...

前端基礎 匹配中文(utf 8編碼)

每個字元 中文 英文本母 數字 各種符號 拉丁文 韓文 日文等 都對應著乙個unicode編碼。檢視unicode編碼,找到中文的部分,然後獲取中文的unicode編碼的區間,就可以用正則匹配了。前面我們用 a z 表示小寫字母,0 9 表示數字,這就是乙個範圍表示,如果有乙個數x能夠表示第乙個中文...

前端三大主流框架中文文件

angular 官方同步中文文件 react 官方同步中文文件 react 入門中文文件 redux 中文文件 react redux 使用簡述 react router 中文文件 v4版本採用動態路由 v2,v3版本採用靜態路由,大多數人會比較喜歡靜態路由這種方法,v4所採用的動態路由更符合元件化...