国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS實現漢字與Unicode碼相互轉換的方法詳解

2019-11-19 16:41:50
字體:
來源:轉載
供稿:網友

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

js文件中,有些變量的值可能會含有漢字,畫面引入js以后,有可能會因為字符集的原因,把里面的漢字都變成亂碼。后來發現網上的一些js里會把變量中的漢字都表示成”/u“開頭的16進制編碼,這樣應該可以解決上面的問題。

最近有時間在網上查找了一下實現方式,一種比較大眾化的:

function tounicode(data){  if(data == '') return '請輸入漢字';  var str ='';  for(var i=0;i<data.length;i++)  {   str+="http://u"+parseInt(data[i].charCodeAt(0),10).toString(16);  }  return str;}function tohanzi(data){  if(data == '') return '請輸入十六進制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;}

還找到一個相對簡單一些,但比較另類的:

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

不過都有些問題,這兩種方式,都會把出漢字以外的其他字符都給轉換掉,做個簡單的加密解密算法還是可以的,但要是用來處理js文件,把回車、換行、空格、tab字符全換了,轉完以后,js文件也沒法運行了。

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

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

方法寫完了,為了方便轉換js文件的內容,再做個簡單的頁面,加一個button在畫面上。先要做的是在js文件Ctr+A,Ctr+C,把內容拷貝 到剪貼板里,然后再新建的這個畫面上,點button的時候,從剪貼板里把內容讀出來,調用方法轉一下,在把內容放回剪貼板。然后再到 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")));     }   }   // 漢字轉為Unicode字符碼表示// 原函數是,紅色是是錯誤的,導致多個中文時,結果都是最后一個漢字的unicode碼;   function toUnicode(s){     return s.replace(/([/u4E00-/u9FA5]|[/uFE30-/uFFA0])/g,function(){      return "http://u" + RegExp["$1"].charCodeAt(0).toString(16);     });   }// 經@b4b4指正,現更改function toUnicode(s){     return s.replace(/([/u4E00-/u9FA5]|[/uFE30-/uFFA0])/g,function(newStr){      return "http://u" + newStr.charCodeAt(0).toString(16);});}</script></head><body onload="Window_Load();"><button id="cmdToU">漢字轉為Unicode</button></body></html>

這個頁面只能在IE內核的瀏覽器下才能正常運行,因為clipboardData對象好像只在IE下面有。

PS:這里再為大家提供幾款Unicode編碼轉換操作相關工具供大家參考使用:

在線Unicode/中文轉換工具:
http://tools.VeVB.COm/transcoding/unicode_chinese

Native/Unicode在線編碼轉換工具:
http://tools.VeVB.COm/transcoding/native2unicode

在線中文漢字/ASCII碼/Unicode編碼互相轉換工具:
http://tools.VeVB.COm/transcoding/chinese2unicode

更多關于JavaScript相關內容可查看本站專題:《javascript編碼操作技巧總結》、《JavaScript加密解密技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台北县| 垣曲县| 常山县| 永新县| 施秉县| 广德县| 淮安市| 大邑县| 凌海市| 修武县| 玉环县| 郧西县| 蓝山县| 方正县| 隆化县| 马鞍山市| 长宁区| 和平县| 墨竹工卡县| 黔南| 高陵县| 中山市| 兴义市| 祥云县| 中西区| 临高县| 蓬溪县| 湘西| 新民市| 雷波县| 东丽区| 宁都县| 丹巴县| 会理县| 陆川县| 修水县| 玛纳斯县| 横峰县| 松原市| 临邑县| 岳普湖县|