最近正在編寫自己的項目,其中遇到了nodejs後台接受到的富文本參數顯示中文亂碼的問題
一開始我以為是字符編碼方式的錯誤,於是在請求參數的地方設置了utf-8,也就是:
headers: {
'Content-Type': 'x-www-form-urlencoded;charset=utf-8'
}
這樣做確實可以解決這方面的問題,然而我的問題仍沒有得到解決,於是後來我細心的發現我的上傳文字中出現了百分號%,那麼問題的根源就找到了,encodeURIComponent(“中文”)會出現百分號,所以由此可得知fetch在處理上傳數據的時候會自動對該數據進行編碼,於是在前端這邊可以對上傳數據進行二次編碼,把'%'編碼成'%25',那麼在後端就可以正確的獲取數據:
data:{id:1, content:encodeURI(encodeURI(‘商品'))}