1.經過解編碼的方式轉換java
/* *js Unicode編碼轉換 */ var decToHex = function(str) { var res=[]; for(var i=0;i < str.length;i++) res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4); return "\\u"+res.join("\\u"); } var hexToDec = function(str) { str=str.replace(/\\/g,"%"); return unescape(str); } var str=decToHex("decToHex unicode 編碼轉換");
2.經過Escape方式轉換ajax
var decToHex =function(s) { return window.escape(s).replace(/%/ig,'\\'); } var hexToDec = function(str) { str=str.replace(/\\/g,"%"); return unescape(str); }
3.還有一種方式是正則替換json
var decToHex =function(s) { return s.replace(/^[\u4e00-\u9fa5]+$/ig,function(s){ return window.escape(s).replace(/%/ig,'\\'); }).toLowerCase(); }
(這裏來自真實案例,請注意)服務器
var testStr = "你好,中國!Hello China,2015-12-15,15%,6000¥"; var jsonData = {code:10112,message:{id:'145678812-za-ck11293',content:testStr}} //1.進行處理,不然在ajax傳送過去的對象上,數據會變成 {code:10112,message:object} var jsonStr = JSON.stringiIfy(jsonData); //2.處理中文等Unicode字符 var urldata = encodeURI(jsonStr); //3.這樣處理的數據,一般變得雜亂無章。所以有必要使用Base64進行編碼 var base64Data = window.atob(url); $.ajax({ type: 'POST', url: '/projects', data: { actionName: 'register',data: base64Data }, dataType: 'json', timeout: 300, context: $('body'), success: function(data){ console.dir(arguments); }, error: function(xhr, type){ alert('Ajax error!') }})
這部分實現主要是把Pinying4Android.jar裏面的資源取出來,構建成ES6或者Javascript中的JSON數據來實現,其中用到中文轉Unicode,因爲時間因素,這部分代碼之後提供。。。編碼