国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS基礎篇--JS之漢字與Unicode碼的相互轉化

gaara / 3582人閱讀

摘要:有時候,我們在給后端傳遞變量的的值中有漢字,可能由于編碼的原因,傳遞到后端后變為亂碼了。當然漢字轉換成編碼,使用的方法就可以。

有時候,我們在給后端傳遞變量的的值中有漢字,可能由于編碼的原因,傳遞到后端后變為亂碼了。所以有時候為了省事或者其它特殊要求的時候,會把傳遞的漢字轉換成Unicode編碼后再進行傳遞。

當然漢字轉換成unicode編碼,使用JS的charCodeAt()方法就可以。

"好".charCodeAt(0).toString(16)
"597d"

這段代碼的意思是,把字符""轉化成Unicode編碼toString()就是把字符轉化成16進制

用法:charCodeAt() 方法可返回指定位置的字符的 Unicode 編碼。這個返回值是 0 - 65535 之間的整數
語法:stringObject.charCodeAt(index)
index參數必填,表示字符串中某個位置的數字,即字符在字符串中的下標。
注:字符串中第一個字符的下標是 0。如果 index 是負數,或大于等于字符串的長度,則 charCodeAt() 返回 NaN。
例如:

var str="Hello world!"
document.write(str.charCodeAt(1))
//結果:101
"好哦".charCodeAt(0).toString(16)
"597d"
"好哦".charCodeAt(1).toString(16)
"54e6"

要是想把unicode解碼成字符呢?
要想對Unicode解碼的話,必須要用轉義字符"u"

"u54e6"
"哦"

總結下:

js unicode是以十六進制代碼外加開頭u表示的字符串。即unnnn

Unicode 是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。1990年開始研發,1994年正式公布。

下面先看一個簡單的例子,漢字轉化為unicode方法:

function toUnicodeFun(data){
  if(data == "" || typeof data == "undefined") return "請輸入漢字";
   var str =""; 
   for(var i=0;i

unicode轉化為漢字的方法:

function toChineseWords(data){
    if(data == "" || typeof data == "undefined") return "請輸入十六進制unicode";
    data = data.split("u");
    var str ="";
    for(var i=0;i

在網上找到另外一個實現方式:

var GB2312UnicodeConverter={
    ToUnicode:function(str){
       return escape(str).toLocaleLowerCase().replace(/%u/gi,"u");
    },
    ToGB2312:function(str){
       return unescape(str.replace(/u/gi,"%u"));
    }
};
var result = GB2312UnicodeConverter.ToUnicode("中國"); //u4e2du56fd
var result2 = GB2312UnicodeConverter.ToUnicode(result); //%5cu4e2d%5cu56fd

下面實現漢字轉Unicode碼:

function toUnicode(s){ 
    return s.replace(/([u4E00-u9FA5]|[uFE30-uFFA0])/g,function(newStr){
        return "u" + newStr.charCodeAt(0).toString(16); 
    }); 
} 

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89836.html

相關文章

  • Node閑談Buffer

    摘要:閑談系列不涉及具體的講解,只會勾勾畫畫一些自己認為比較重要的特性。我們一般認為用兩個字節位表示,并且完全囊括了字符集。將其轉換成進制就是只是表示它們是碼。三的讀取和寫入相關重要的只有能夠讀寫,才能夠顯示其存在的價值。 原文地址:http://www.cnblogs.com/DeanCh... 在剛接觸Nodejs的時候,有些概念總讓學前端的我感到困惑(雖然大學的時候也是在搞后端,世界上...

    Godtoy 評論0 收藏0
  • JS基礎-- JS對全角半角的驗證,相互轉化以及介紹

    摘要:全角占兩個字節。漢字字符和規定了全角的英文字符及國標中的圖形符號和特殊字符都是全角字符。在全角中,字母和數字等與漢字一樣占據著等寬的位置。全角轉換為半角 1.什么是全角和半角? 全角:是一種電腦字符,是指一個全角字符占用兩個標準字符(或兩個半角字符)的位置。全角占兩個字節。 漢字字符和規定了全角的英文字符及國標GB2312-80中的圖形符號和特殊字符都是全角字符。在全角中,字母和數字等...

    YancyYe 評論0 收藏0
  • 編碼-1

    摘要:關于的參考知乎上的一個回答傳送門以我自己的理解就是首先得分清楚編碼問題在不同的環境中,編碼是不同的。但是如果換成的是知乎的話,則表示的是將這個漢字用編碼的形式存放。 文章啟發來源: cnblogs 阮一峰 知乎 字符編碼方式 note from wiki: 從維基百科上得到的一些理解,一個字符的unicode編碼是確定的,但是在傳輸過程中,由于不同系統平臺的設計不一致,所以對uni...

    IamDLY 評論0 收藏0
  • Linux下文件名長度限制

    摘要:下文件名長度限制出現場景在迭代中有一個需求是將文件名修改為所有班級的名稱集合,出現的班級過多導致的文件名過長在下無法創建文件和文件夾的情況解決方式經過查證,中文件名最長為字符,文件路徑最大長度為字符。這是被編碼方案決定的,通過來指定。 Linux下文件名長度限制 出現場景:在迭代中有一個需求是將pdf文件名修改為所有班級的名稱集合,出現的班級過多導致的文件名過長在linux下無法創建文...

    entner 評論0 收藏0

發表評論

0條評論

gaara

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<