javascript wchar_t 宽字符 转化为 ascii字符码数组
String.prototype.charCodeAt
String.fromCharCode()
String.prototype.toUtfArray = function() {
return this.split('').reduce(function(a, c) {
var code = c.charCodeAt(0);
a.push(code >> 8);
a.push(code & 0x0ff);
return a;
}, []);
};
String.fromUtfArray = function(a) {
// 长度偶数个 否则前面补0
if (a.length % 2 ===1) {
a.unshift(0);
}
var wa = [], code = 0;
for (var i = 0; i< a.length; i++) {
if (i%2===0) {
code = a[i] << 8;
} else {
code |= a[i];
wa.push(code);
}
}
return wa.map(function(c) {
return String.fromCharCode(c);
}).join('');
};
test:
var s1 = "你好a";
var a = s1.toUtfArray(); // [79, 96, 89, 125, 0, 97]
console.log(a.toString());
var s2 = String.fromUtfArray(a);
console.log(s2); // "你好a"
* UTF-8 变长
字符 UTF-8编码 Byte 1 Byte 2 Byte 3
A 01000001
Ö 11000011 10010110
中 11100100 10111000 10101101
---------------------------------------------------------
Binary Hex Comments
0xxxxxxx 0x00..0x7F Only byte of a 1-byte character encoding
10xxxxxx 0x80..0xBF Continuation bytes (1-3 continuation bytes)
110xxxxx 0xC0..0xDF First byte of a 2-byte character encoding
1110xxxx 0xE0..0xEF First byte of a 3-byte character encoding
11110xxx 0xF0..0xF7 First byte of a 4-byte character encoding
javascript wchar_t 宽字符 转化为 ascii字符码数组的更多相关文章
- ASCII字符集中的功能/控制字符
ASCII字符集中的功能/控制字符 Function/Control Code/Character in ASCII Version: 2011-02-15 Author: gree ...
- 由 char()函数返回的 ASCII字符集中的功能/控制字符
如果在excel下的单元格写入公式:=“国际经济与贸易”&CHAR(10)&"401班"&CHAR(10)&"A组".则出现: ...
- C语言之将无符号字符型转化为ascii码值
这个宏是在linux内核中获取的,主要的功能是能够将一个无符号字符型的参数转化为ASCII码值. ASCII : ASCII 编码里包括了128个字符.用 十进制 0 到 127 来表示 .那就对了 ...
- shell 脚本文件十六进制转化为ascii码代码, Shell中ASCII值和字符之间的转换
Shell中ASCII值和字符之间的转换 1.ASCII值转换为字符 方法一: i=97 echo $i | awk '{printf("%c", $1)}' ...
- 使用Unicode(宽字节字符集);多字节字符集中定义宽字节变量
2012-03-25 14:54 (分类:计算机程序) 2.2 宽字符和C 宽字符不一定是Unicode.Unicode是宽字符集的一种.然而,因为本书的焦点是Windows而不是C执行的理论,所以书 ...
- 三种字符编码:ASCII、Unicode和UTF-8
原文:三种字符编码:ASCII.Unicode和UTF-8 什么是字符编码? 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字 ...
- AsciiMorph - 新奇的 ASCII 字符画生成工具&插件
AsciiMorph 是一个新奇的 ASCII 字符画生成工具和开源插件.字符画(ASCII Art)的历史可以追溯到几十年前,起初是用在图形显示功能受限的设备上,用ASCII字符集里的可打印字符来拼 ...
- 将一个字符与对应Ascii码互转
package nicetime.com.practies; /** * Java中将一个字符与对应Ascii码互转 1 byte = 8bit 可以表示 0-127 */public class G ...
- 三种常见字符编码:ASCII、Unicode和UTF-8
什么是字符编码? 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255( ...
随机推荐
- 【网络编程】TCPIP-8-套接字的多种选项
目录 前言 8. 套接字的多种选项 8.1 API getsockopt(); & setsockopt(); 8.2 套接字选项 8.3 缓冲区相关可选项 8.4 端口复用 8.4.1 ti ...
- GithubSearch
https://docs.github.com/cn/github/searching-for-information-on-github/searching-on-github/searching- ...
- node上传包到npm公共库
自己想做些插件分享出去,npm上传你的插件包是最好的选择,废话不多说,直接开干: 1.我们先建一个文件夹,随便先写个js文件,名字随便写,命名hello.js: 2.再用npm init命令生成pac ...
- Redis常用技术
Xml配置: <?xml version='1.0' encoding='UTF-8' ?> <!-- was: <?xml version="1.0" e ...
- default错误
查看根目录发现 修改成index.php可以了
- php实现验证码(数字、字母、汉字)
验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码.好吧,其实是没有事情干,但是又不想浪费时间,所以学习了下php实现验证码.正所谓,技多不压身.而且,也 ...
- AFL++初探-手把手Fuzz一个PDF解析器
CVE-2019-13288 目前漏洞在正式版本已经被修复,本文章仅供学习Fuzz过程,不存在漏洞利用的内容 这是一个pdf查看器的漏洞,可能通过精心制作的文件导致无限递归,由于程序中每个被调用的函数 ...
- 云原生学习筑基 ~ 组网必备知识点 ~ DNS服务
@ 目录 一.为啥写这篇文章? 二.DNS的作用 三.域 四.DNS工作原理 五.搭建DNS服务器 5.1.Bind 5.2.系统环境准备 5.3.安装 5.4.查看bind的相关文件 5.5.查看b ...
- WEB漏洞——XXE
XXE漏洞又称XML外部实体注入(XML External Entity) 介绍XXE漏洞前先说一下什么是XML XML语言 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据定义数据类 ...
- pluto中监听各个网口的500端口处理逻辑
1. pluto中监听各个网口的500端口处理逻辑 whack_handle() find_ifaces() find_raw_ifaces4() socket.setsockopt.bind.ioc ...