JS基础篇--JS之汉字与Unicode码的相互转化
佚名
2025-05-29 05:01:45
0

有时候,我们在给后端传递变量的的值中有汉字,可能由于编码的原因,传递到后端后变为乱码了。所以有时候为了省事或者其它特殊要求的时候,会把传递的汉字转换成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('中国'); //\u4e2d\u56fd
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); 
    }); 
}

相关内容

JS基础篇--JS之汉字与...
有时候,我们在给后端传递变量的的值中有汉字,可能由于编码的原因,传...
2025-05-29 05:01:45
js与html编码不同,j...
文章浏览阅读343次。【转】javascript和html中uni...
2025-05-29 05:01:35

热门资讯

票房破3000万,看完《焚城》... 票房破3000万,看完《焚城》,我想说:刘德华这片拍出了港片良心,焚城,范伟,票房,港片,刘德华,莫...
业界最美混血美少女,长相清纯却... 今天要给大家介绍的这位女神,有着日美混血的美少女—西田卡莉娜!
包青天系列电视剧观看顺序指南:... 包青天几部的先后顺序?①1、《包公出巡》是王枚,金鳌勋执导的古装传奇剧。2、《包公奇案》,以“情花劫...
盘点《七龙珠》剧场版20部,你... 今天小白为大家整理《七龙珠》剧场版,没想到总计有20部哦,龙珠迷们,你们又看过几部呢?接下来我们来盘...
水龙头单孔和双孔区别 单孔和双... 相信大家对水龙头都不陌生吧!在日常生活中,水龙头是特别常见的一种用具。我们大多数人都了解水龙头吗?知...
因果报应:2024年度印度悬疑... 在印度电影的璀璨星空中,悬疑片以其独特的魅力和深刻的社会意义,一直占据着不可动摇的地位。最近,一部名...
动漫七大粉色系美少女,最后一个... 粉色系是少女心的代表色,象征着可爱、萌、单纯。细数动漫中拥有粉色头发的美少女们,她们不世故、单纯而善...
《春花焰》大结局:恶心的小说改... 从9月开始,古装剧连台好戏,有任嘉伦和李兰迪主演的《流水迢迢》,李沁和曾舜晞主演的《七夜雪》,刘学义...
白夜破晓续作强势回归,原班人马... 七年磨一剑,白夜系列再续经典时隔七年,备受期待的《白夜追凶》续作——《白夜破晓》终于在今日(11月2...
因果报应2024年上映:尼蒂兰... 印度电影《因果报应》的导演是尼蒂兰·萨米纳坦,这是他的第二部电影作品,其代表作还有《猴子玩具》.主演...