javaScript Unicode字符轉換和Pinying4JavaScript.js

一.JavaScript實現漢字轉爲Unicode

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();
}
二.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,因爲時間因素,這部分代碼之後提供。。。編碼

相關文章
相關標籤/搜索