js 16进制Unicode编码与中文相互转换

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <script language=javascript>

function utf8to16(str) {
    var out, i, len, c;
    var char2, char3;
    out = "";
    len = str.length;
    i = 0;
    while(i < len) {
		 c = str.charCodeAt(i++);
		 switch(c >> 4)
		 {
		   case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
			 out += str.charAt(i-1);
			 break;
		   case 12: case 13:
			 char2 = str.charCodeAt(i++);
			 out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
			 break;
		   case 14:
			 char2 = str.charCodeAt(i++);
			 char3 = str.charCodeAt(i++);
			 out += String.fromCharCode(((c & 0x0F) << 12) |
				((char2 & 0x3F) << 6) |
				((char3 & 0x3F) << 0));
			 break;
		 }
    }

    return out;
}

document.writeln(utf8to16(unescape("%E4%BD%A0%E5%A5%BD")));
document.writeln("%E4%BD%A0%E5%A5%BD");
document.writeln(escape("你好"));
document.writeln(encodeURI("你好"));
document.writeln(encodeURIComponent("你好"));

</script>
 </HEAD>

 <BODY>

 </BODY>
</HTML>

时间: 2024-10-05 02:30:15

js 16进制Unicode编码与中文相互转换的相关文章

Qt实现16进制unicode转utf-8以及国际音标编码问题

由于项目需要,需要对网络资源进行解码.遇到编码问题.研究了下基本编码原理.于是有了下面两个通用代码 [cpp] view plaincopy 1. 16进制unicode转换为utf-8中文显示 QString unicodeToUtf_8(const QString &resStr) { //  unicode转utf-8  思路: 一个unicode编码占用2字节.所以只需要用4个16进制数字结合表示就行了 QString temp; for (int i = 0; i< resStr.

16进制、编码(编码问题随理解深入持续更新中)

16进制: 十进制转换成8进制: oct ( 数字) 十进制转换成16进制:  hex( 数字) CPU.内存.硬盘我们看到都是采用的16进制计算. 一个字节(byte)能够用2个16进制的数来表示.4个2进制对应1个16进制. 编码: 所有的系统.编程语言都默认支持Unicode. UTF-8/GBK... --> decode 解码 --> Unicode Unicode --> encode 编码 --> GBK / UTF-8 .. 假设某Python文件是以UTF-8保存

JS 16进制加密解密

http://www.zc520.cc/js/62.html <script type="text/javascript"> function JavaDe(){ var monyer = new Array(); var s = document.getElementById('code').value.split("\\"); for (i = 1; i < s.length; i++){ s[i] = s[i].replace('x', ''

URL参数中汉字转换为16进制Unicode形式

导入JAR包: import java.net.*; 把汉字转换为16进制Unicode形式: String xw="新闻中心"; String name=URLEncoder.encode(xw,"utf-8"); 把16进制Unicode形式字符串转换为汉字: URLDecoder.decode("%E6%96%B0%E9%97%BB%E4%B8%AD%E5%BF%83","utf-8"); 注意:从A(UTF-8)页面中

js 16进制字符串互转

/** * 16进制转换为字符串 * @param hex * @returns {*} */ function hexToString(hex) { var tmp = ''; if (hex.length % 2 == 0 ) { for (var i = 0; i < hex.length; i += 2) { tmp += '%' + hex.charAt(i) + hex.charAt(i + 1); } } return decodeURIComponent(tmp); } /**

16进制字符和图片之间相互转换

图片和字符转换一版用在socket进行通信之间.现在我就把我写的和测试整理出来和大家分享下 1:图片转换成16进制字符 1 FileStream fs = new FileStream(lbl_show.Text, FileMode.Open, FileAccess.Read); 2 BinaryReader br = new BinaryReader(fs); 3 StreamWriter sw = new StreamWriter(tb_position.Text); 4 int lengt

C#数字、16进制字符串和字节之间互转

转自http://luohonghong.blog.163.com/blog/static/78312058201242632055642/ 如下: 1.数字和字节之间互转 int num=12345; byte[] bytes=BitConverter.GetBytes(num);//将int32转换为字节数组 num=BitConverter.ToInt32(bytes,0);//将字节数组内容再转成int32类型 2.将字符串转为16进制字符,允许中文 private string Str

C# 字符与16进制转换

一个字节包含8个二进制位,一个十六进制可表示4个二进制位,所以,一个字节可以由2个十六进制表示 总结如下: (1)一个byte 对应两位十六进制位,而不是八位(32位二进制位): (2)转化为十六进制之后,不足两位的,高位要补零. 8位十六进制数占多少字节 比如0x12345678这是多少字节? 一位十六进制代表四位二进制,0x12345678转换成二进制就是0001-0010-0011-0100-0101-0110-0111- 1000而没八位二进制占一个字节,所以你 8位十六进制数占4字节

加密解密基础问题:字节数组和(16进制)字符串的相互转换(转)

在加密时,一般加密算法和hash算法,它们操作的都是字节数组,对字节数组按照加密算法进行各种变换,运算,得到的结果也是字节数组.而我们一般是要求对字符串进行加密,所以就涉及到字符串String到 byte[] 的转换,这个很简单.同时在解密时,也涉及到字节数组byte[] 到 String 的转换.另外在对用户的密码进行hash加密之后,最终是要保存在数据库中,所以加密得到 byte[] 也要转换到 String. 1. String 到 byte[] 的转换很简单,因为String类有直接的函