摘要:有時(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;iunicode轉(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
摘要:閑談系列不涉及具體的講解,只會(huì)勾勾畫畫一些自己認(rèn)為比較重要的特性。我們一般認(rèn)為用兩個(gè)字節(jié)位表示,并且完全囊括了字符集。將其轉(zhuǎn)換成進(jìn)制就是只是表示它們是碼。三的讀取和寫入相關(guān)重要的只有能夠讀寫,才能夠顯示其存在的價(jià)值。 原文地址:http://www.cnblogs.com/DeanCh... 在剛接觸Nodejs的時(shí)候,有些概念總讓學(xué)前端的我感到困惑(雖然大學(xué)的時(shí)候也是在搞后端,世界上...
摘要:全角占兩個(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ù)字等...
摘要:下文件名長(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)建文...
閱讀 3120·2023-04-26 02:25
閱讀 2342·2023-04-25 18:05
閱讀 719·2021-09-30 09:57
閱讀 3020·2021-09-27 14:10
閱讀 1730·2019-08-30 15:44
閱讀 1075·2019-08-29 15:28
閱讀 2604·2019-08-29 14:10
閱讀 2348·2019-08-29 13:30