javaScript Unicode字符转换和Pinying4JavaScript.js

一.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,由于时间因素,这部分代码以后提供。。。




你可能感兴趣的:(js实现Unicode字符转换)