在進行get請求時,如果獲取到的json字符串包含中文,有時可能會遇到亂碼的情況。這是因為服務器返回的json字符串中文編碼格式與瀏覽器默認編碼格式不同導致的。
解決這個問題的方法有兩種:
1.在服務端將json字符串中文編碼格式設為utf-8
header('Content-Type:application/json;charset=utf-8'); echo json_encode($data, JSON_UNESCAPED_UNICODE);
2.在前端對獲取到的json字符串進行編碼格式轉換
fetch(url).then(function(response){ return response.json(); }).then(function(data){ var str = JSON.stringify(data); var result = decodeURIComponent(escape(str)); console.log(JSON.parse(result)); });
這里使用了兩個函數:encodeURIComponent()和escape()。encodeURIComponent()可將字符串中的字符轉換成URI編碼,而escape()則可將字符串編碼成可傳輸的ASCII碼。
在使用以上方法后,即可解決get請求獲取json字符串中文亂碼的問題。