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

首頁 > 開發(fā) > JS > 正文

JS實(shí)現(xiàn)的漢字與Unicode碼相互轉(zhuǎn)化功能分析

2024-05-06 16:44:35
字體:
供稿:網(wǎng)友

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

有時(shí)候,我們在給后端傳遞變量的的值中有漢字,可能由于編碼的原因,傳遞到后端后變?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ù)

語法:stringObject.charCodeAt(index)

index參數(shù)必填,表示字符串中某個(gè)位置的數(shù)字,即字符在字符串中的下標(biāo)。

注:字符串中第一個(gè)字符的下標(biāo)是 0。如果 index 是負(fù)數(shù),或大于等于字符串的長度,則 charCodeAt() 返回 NaN。

例如:

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

要是想把unicode解碼成字符呢?

要想對Unicode解碼的話,必須要用轉(zhuǎn)義字符'/u'

'/u54e6'"哦"

總結(jié)下:

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

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

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

function toUnicodeFun(data){ if(data == '' || typeof data == 'undefined') return '請輸入漢字';  var str ='';  for(var i=0;i<data.length;i++){   str+="//u"+data.charCodeAt(i).toString(16);  }  return str;}var resultUnicode = toUnicodeFun('中國'); // /u4e2d/u56fdconsole.log(resultUnicode);

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

function toChineseWords(data){  if(data == '' || typeof data == 'undefined') return '請輸入十六進(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;}var resultChineseWords = toChineseWords("/u4e2d/u56fd");console.log(resultChineseWords);//中國

在網(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('中國'); ///u4e2d/u56fdvar 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);  });}

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


注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴文县| 南京市| 长宁区| 如皋市| 苏尼特左旗| 望谟县| 陇南市| 石狮市| 阳春市| 龙陵县| 邯郸市| 错那县| 微山县| 阳曲县| 南充市| 灌云县| 胶南市| 城固县| 云林县| 老河口市| 井陉县| 天台县| 三台县| 和平县| 澄城县| 布尔津县| 通渭县| 永顺县| 中江县| 磴口县| 中江县| 屏南县| 疏勒县| 拉孜县| 北辰区| 淮北市| 神农架林区| 英德市| 长泰县| 海门市| 崇礼县|