亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

JS基礎(chǔ)篇--JS之漢字與Unicode碼的相互轉(zhuǎn)化

gaara / 3673人閱讀

摘要:有時(shí)候,我們?cè)诮o后端傳遞變量的的值中有漢字,可能由于編碼的原因,傳遞到后端后變?yōu)閬y碼了。當(dāng)然漢字轉(zhuǎn)換成編碼,使用的方法就可以。

有時(shí)候,我們?cè)诮o后端傳遞變量的的值中有漢字,可能由于編碼的原因,傳遞到后端后變?yōu)閬y碼了。所以有時(shí)候?yàn)榱耸∈禄蛘咂渌厥庖蟮臅r(shí)候,會(huì)把傳遞的漢字轉(zhuǎn)換成Unicode編碼后再進(jìn)行傳遞。

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

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

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

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

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

要是想把unicode解碼成字符呢?
要想對(duì)Unicode解碼的話,必須要用轉(zhuǎn)義字符"u"

"u54e6"
"哦"

總結(jié)下:

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

Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的,它為每種語(yǔ)言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語(yǔ)言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的要求。1990年開始研發(fā),1994年正式公布。

下面先看一個(gè)簡(jiǎn)單的例子,漢字轉(zhuǎn)化為unicode方法:

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

unicode轉(zhuǎn)化為漢字的方法:

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

在網(wǎng)上找到另外一個(gè)實(shí)現(xiàn)方式:

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("中國(guó)"); //u4e2du56fd
var result2 = GB2312UnicodeConverter.ToUnicode(result); //%5cu4e2d%5cu56fd

下面實(shí)現(xiàn)漢字轉(zhuǎn)Unicode碼:

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/89836.html

相關(guān)文章

  • Node閑談Buffer

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

    Godtoy 評(píng)論0 收藏0
  • JS基礎(chǔ)-- JS對(duì)全角半角的驗(yàn)證,相互轉(zhuǎn)化以及介紹

    摘要:全角占兩個(gè)字節(jié)。漢字字符和規(guī)定了全角的英文字符及國(guó)標(biāo)中的圖形符號(hào)和特殊字符都是全角字符。在全角中,字母和數(shù)字等與漢字一樣占據(jù)著等寬的位置。全角轉(zhuǎn)換為半角 1.什么是全角和半角? 全角:是一種電腦字符,是指一個(gè)全角字符占用兩個(gè)標(biāo)準(zhǔn)字符(或兩個(gè)半角字符)的位置。全角占兩個(gè)字節(jié)。 漢字字符和規(guī)定了全角的英文字符及國(guó)標(biāo)GB2312-80中的圖形符號(hào)和特殊字符都是全角字符。在全角中,字母和數(shù)字等...

    YancyYe 評(píng)論0 收藏0
  • 編碼-1

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

    IamDLY 評(píng)論0 收藏0
  • Linux下文件名長(zhǎng)度限制

    摘要:下文件名長(zhǎng)度限制出現(xiàn)場(chǎng)景在迭代中有一個(gè)需求是將文件名修改為所有班級(jí)的名稱集合,出現(xiàn)的班級(jí)過多導(dǎo)致的文件名過長(zhǎng)在下無(wú)法創(chuàng)建文件和文件夾的情況解決方式經(jīng)過查證,中文件名最長(zhǎng)為字符,文件路徑最大長(zhǎng)度為字符。這是被編碼方案決定的,通過來(lái)指定。 Linux下文件名長(zhǎng)度限制 出現(xiàn)場(chǎng)景:在迭代中有一個(gè)需求是將pdf文件名修改為所有班級(jí)的名稱集合,出現(xiàn)的班級(jí)過多導(dǎo)致的文件名過長(zhǎng)在linux下無(wú)法創(chuàng)建文...

    entner 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<