利用xhr傳送中文

項目中使用xhr的send函數來發送二進制數據,達到了用ajax上傳文件的目的。但是跟着二進制流傳遞的參數(比如文件名),就只能直接放在url裏面了。
如下

var xhr = new XMLHttpRequest();
var filename="圖片";
var url="XXX?filename="+filename;

xhr.setRequestHeader("Content-type","charset=utf-8");
//u8data 爲二進制數據流
xhr.send(u8data);


但是此時參數裏面的中文爲%XX形式。解決方案爲:
前端使用兩次encodeURI:
var url="XXX?filename="+encodeURI(encodeURI(filename));

後臺使用java.net.URLDecoder.decode,本例爲
str=java.net.URLDecoder.decode(str,"utf-8");//str="圖片"
發佈了37 篇原創文章 · 獲贊 31 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章