一.JavaScript实现汉字转为Unicode
1.通过解编码的方式转换
/*
*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方式转换
var decToHex =function(s)
{
return window.escape(s).replace(/%/ig,'\\');
}
var hexToDec = function(str) {
str=str.replace(/\\/g,"%");
return unescape(str);
}
3.还有一种方式是正则替换
var decToHex =function(s)
{
return s.replace(/^[\u4e00-\u9fa5]+$/ig,function(s){
return window.escape(s).replace(/%/ig,'\\');
}).toLowerCase();
}
二.Ajax与服务器通信过程中,JSON包裹对象数据(JSON数据中包含JSON对象)的处理(复杂情况下包含汉字,特殊字符),这种情况下需如下处理
(这里来自真实案例,请注意)
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!')
}})
三.关于Pinyin4JavaScript
这部分实现主要是把Pinying4Android.jar里面的资源取出来,构建成ES6或者Javascript中的JSON数据来实现,其中用到中文转Unicode,由于时间因素,这部分代码以后提供。。。