1、知识准备
str.charCodeAt() 返回字符串中的第n个字符的代码;
String.fromCharCode(27573) 返回指定Unicode编码的字符;
例:
var str="程序人生"; document.write(str.charCodeAt(0)+'<br/>'); //31243 document.write(str.charCodeAt(1)+'<br/>'); //24207 document.write(String.fromCharCode(31243)+'<br/>'); //程 document.write(String.fromCharCode(24207)+'<br/>'); //序
2、把 中文字符串 转换为 十六进制Unicode编码
var toUnicode = function (s) { var str = ""; for (var i = 0; i < s.length; i++) { str +="//u"+s.charCodeAt(i).toString(16)+"/t"; } return str; } var a = '程序人生'; document.write(toUnicode(a)); // /u7a0b /u5e8f /u4eba /u751f
3、把 十六进制Unicode编码 转换为 中文字符串。
因为"/u"会被转义,所以字符串里要写成//u。
var toStr = function (n){ var str = ""; var s = n.split('//u'); for(var i = 0;i < s.length;i++){ str += String.fromCharCode(parseInt(s[i],16))+"/t"; } return str; } var b = "//u7a0b //u5e8f //u4eba //u751f"; document.write(toStr(b)); // 程 序 人 生
转义字符"/"的妙用
大家可能对转义字符""不太熟悉,但对于JavaScript提供了一些特殊字符如:/n (换行)、 /r (回车)、/’ (单引号 )等应该是有所了解的吧?
其实"/"后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"/141"或"/x61"(注意是小写字符"x"),至于双字节字符如汉字 "黑" 则仅能用十六进制表示为"/u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理,下面例子中2行代码输出完全一样:
<script> alert('/x3c/x62/x3e/x77/x65/x62/u5f00/u53d1/u8005/x3c/x2f/x62/x3e'); alert('/74/142/76/167/145/142/u5f00/u53d1/u8005/74/57/142/76'); </script>
/u之后跟4位十六进制数。取值范围:/u0000 到 /uffff
/x之后跟2位十六进制数。取值范围:/x00 到 /xff
欢迎大家阅读《中文字符转十六进制Unicode编码源代码实例_js》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码