欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS實(shí)現(xiàn)漢字與Unicode碼相互轉(zhuǎn)換的方法詳解

 更新時(shí)間:2017年04月28日 11:38:51   作者:一步小僧  
這篇文章主要介紹了JS實(shí)現(xiàn)漢字與Unicode碼相互轉(zhuǎn)換的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript針對(duì)漢字與Unicode編碼轉(zhuǎn)換的操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了JS實(shí)現(xiàn)漢字與Unicode碼相互轉(zhuǎn)換的方法。分享給大家供大家參考,具體如下:

js文件中,有些變量的值可能會(huì)含有漢字,畫面引入js以后,有可能會(huì)因?yàn)樽址脑颍牙锩娴臐h字都變成亂碼。后來(lái)發(fā)現(xiàn)網(wǎng)上的一些js里會(huì)把變量中的漢字都表示成”\u“開頭的16進(jìn)制編碼,這樣應(yīng)該可以解決上面的問(wèn)題。

最近有時(shí)間在網(wǎng)上查找了一下實(shí)現(xiàn)方式,一種比較大眾化的:

function tounicode(data)
{
  if(data == '') return '請(qǐng)輸入漢字';
  var str ='';
  for(var i=0;i<data.length;i++)
  {
   str+="\\u"+parseInt(data[i].charCodeAt(0),10).toString(16);
  }
  return str;
}
function tohanzi(data)
{
  if(data == '') return '請(qǐng)輸入十六進(jìn)制unicode';
  data = data.split("\u");
  var str ='';
  for(var i=0;i<data.length;i++)
  {
    str+=String.fromCharCode(parseInt(data[i],16).toString(10));
  }
  return str;
}

還找到一個(gè)相對(duì)簡(jiǎn)單一些,但比較另類的:

var GB2312UnicodeConverter={
    ToUnicode:function(str){
     return escape(str).toLocaleLowerCase().replace(/%u/gi,'\\u');
    }
    ,ToGB2312:function(str){
     return unescape(str.replace(/\\u/gi,'%u'));
    }
};

不過(guò)都有些問(wèn)題,這兩種方式,都會(huì)把出漢字以外的其他字符都給轉(zhuǎn)換掉,做個(gè)簡(jiǎn)單的加密解密算法還是可以的,但要是用來(lái)處理js文件,把回車、換行、空格、tab字符全換了,轉(zhuǎn)完以后,js文件也沒法運(yùn)行了。

偷懶不成,只能自己按照上面代碼處理邏輯寫一個(gè)了,只要保證只轉(zhuǎn)換漢字字符就可以了:

// 漢字轉(zhuǎn)為Unicode字符碼表示
function toUnicode(s){
    return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g,function(){
     return "\\u" + RegExp["$1"].charCodeAt(0).toString(16);
    });
}

方法寫完了,為了方便轉(zhuǎn)換js文件的內(nèi)容,再做個(gè)簡(jiǎn)單的頁(yè)面,加一個(gè)button在畫面上。先要做的是在js文件Ctr+A,Ctr+C,把內(nèi)容拷貝 到剪貼板里,然后再新建的這個(gè)畫面上,點(diǎn)button的時(shí)候,從剪貼板里把內(nèi)容讀出來(lái),調(diào)用方法轉(zhuǎn)一下,在把內(nèi)容放回剪貼板。然后再到 js文件里Ctr+A,Ctr+V一下就可以了。代碼如下:

<html>
 <head>
  <script language="javascript">
   function Window_Load(){
     var G = document.getElementById;
     G("cmdToU").onclick = function(){
       clipboardData.setData("text",toUnicode(clipboardData.getData("text")));
     }
   }
   // 漢字轉(zhuǎn)為Unicode字符碼表示
// 原函數(shù)是,紅色是是錯(cuò)誤的,導(dǎo)致多個(gè)中文時(shí),結(jié)果都是最后一個(gè)漢字的unicode碼;
   function toUnicode(s){
     return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g,function(){
      return "\\u" + RegExp["$1"].charCodeAt(0).toString(16);
     });
   }
// 經(jīng)@b4b4指正,現(xiàn)更改
function toUnicode(s){
     return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g,function(newStr){
      return "\\u" + newStr.charCodeAt(0).toString(16);
});
}
</script>
</head>
<body onload="Window_Load();">
<button id="cmdToU">漢字轉(zhuǎn)為Unicode</button>
</body>
</html>

這個(gè)頁(yè)面只能在IE內(nèi)核的瀏覽器下才能正常運(yùn)行,因?yàn)閏lipboardData對(duì)象好像只在IE下面有。

PS:這里再為大家提供幾款Unicode編碼轉(zhuǎn)換操作相關(guān)工具供大家參考使用:

在線Unicode/中文轉(zhuǎn)換工具:
http://tools.jb51.net/transcoding/unicode_chinese

Native/Unicode在線編碼轉(zhuǎn)換工具:
http://tools.jb51.net/transcoding/native2unicode

在線中文漢字/ASCII碼/Unicode編碼互相轉(zhuǎn)換工具:
http://tools.jb51.net/transcoding/chinese2unicode

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript編碼操作技巧總結(jié)》、《JavaScript加密解密技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • JavaScript 參數(shù)中的數(shù)組展開 [譯]

    JavaScript 參數(shù)中的數(shù)組展開 [譯]

    有些時(shí)候,我們需要把一個(gè)數(shù)組展開成多個(gè)元素,然后把這些元素作為函數(shù)調(diào)用的參數(shù).JavaScript中可以使用Function.prototype.apply來(lái)實(shí)現(xiàn)這種展開操作,但它不能被應(yīng)用在執(zhí)行構(gòu)造函數(shù)的情況下.本文解釋了什么是展開操作以及如何在使用new運(yùn)算符的同時(shí)進(jìn)行展開操作
    2012-09-09
  • JavaScript變量類型以及變量之間的轉(zhuǎn)換你了解嗎

    JavaScript變量類型以及變量之間的轉(zhuǎn)換你了解嗎

    這篇文章主要為大家詳細(xì)介紹了JavaScript變量類型以及變量之間的轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • 微信小程序MUI側(cè)滑導(dǎo)航菜單示例(Popup彈出式,左側(cè)不動(dòng),右側(cè)滑動(dòng))

    微信小程序MUI側(cè)滑導(dǎo)航菜單示例(Popup彈出式,左側(cè)不動(dòng),右側(cè)滑動(dòng))

    這篇文章主要介紹了微信小程序MUI側(cè)滑導(dǎo)航菜單,結(jié)合實(shí)例形式分析了微信小程序Popup彈出式,左側(cè)不動(dòng),右側(cè)滑動(dòng)菜單相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-01-01
  • js時(shí)間日期格式化封裝函數(shù)

    js時(shí)間日期格式化封裝函數(shù)

    這里給大家推薦一款自己封裝的js時(shí)間日期格式化的函數(shù),非常的簡(jiǎn)潔實(shí)用,分享給有需要的小伙伴
    2014-12-12
  • JavaScript 判斷數(shù)據(jù)類型的4種方法

    JavaScript 判斷數(shù)據(jù)類型的4種方法

    這篇文章主要介紹了JavaScript 判斷數(shù)據(jù)類型的4種方法,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下
    2020-09-09
  • JavaScript中獲取純正的undefined的方法

    JavaScript中獲取純正的undefined的方法

    這篇文章主要介紹了JavaScript中獲取純正的undefined的方法的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • 純js分頁(yè)代碼(簡(jiǎn)潔實(shí)用)

    純js分頁(yè)代碼(簡(jiǎn)潔實(shí)用)

    純js寫的分頁(yè)代碼且簡(jiǎn)潔實(shí)用哦!需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-11-11
  • 基于JS實(shí)現(xiàn)快速讀取TXT文件

    基于JS實(shí)現(xiàn)快速讀取TXT文件

    這篇文章主要介紹了基于JS實(shí)現(xiàn)快速讀取TXT文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 詳談innerHTML innerText的使用和區(qū)別

    詳談innerHTML innerText的使用和區(qū)別

    下面小編就為大家?guī)?lái)一篇詳談innerHTML innerText的使用和區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 動(dòng)態(tài)樣式類封裝JS代碼

    動(dòng)態(tài)樣式類封裝JS代碼

    動(dòng)態(tài)樣式類封裝JS代碼,動(dòng)態(tài)的改變樣式。
    2009-09-09

最新評(píng)論