JavaScript:将字符转换为代码,或将字符串转换为二进制数组(数字数组)的非标准方法
JavaScript: Non-standard ways to convert characters to codes, or strings to binary arrays (arrays of numbers)
是否有一个技巧在JavaScript转换字符到它的代码,除了。charcodeat (i)?我想以最快的方式将字符串转换为二进制数组(即比charCodeAt更快)。但是我也有兴趣了解慢方法
您可以做一个查找表,但我怀疑它是否会更快。比如:
function(str){
var codes = {},
output = [];
for (var i=0; i<256; i++){
String.codes[fromCharCode(i)] = i;
}
for (var i=0; i<str.length; i++){
output.push(codes[str[i]]);
}
return output;
}
一般来说,如果你可以使用本地代码,那就使用本地代码。
我怀疑你会找到比这段代码更快的东西来完成你想要的:
function getCharArray(str)
{
var chars = [];
for (var i = 0, n = str.length; i != n; ++i) {
chars.push(str.charCodeAt(i));
}
return chars;
}
你必须这样做,因为JavaScript对单个字符没有单独的类型;即使单个字符仍然是字符串,因此您需要String.charCodeAt()
.
javascript中的字符串是unicode,而不是ascii,这意味着单个字符的代码可能大于一个字节。
"€".charCodeAt(1) = 8364
两个字节。如果将其转换回二进制,则可以将其解释为1个2字节字符或2个1字节字符。只是没有办法知道。知道unicode字符的长度是很棘手的。下面的内容可以帮助您了解为什么这个问题很难解决:http://www.joelonsoftware.com/articles/Unicode.html
当然,我不是说你不能将unicode字符串转换为二进制,我是说这是你需要解决的任务,而不仅仅是将单个字符转换为字节。
相关文章:
- 使用JS将数组转换为json对象
- 本地存储中的字符串到字节数组转换
- Javascript函数,用于将数组转换为“;2-元组”;
- php数组转换为javascript
- 在Javascript中将一个值和字符串数组转换为if语句
- 将数组转换为javascript格式的字符串
- 如何将数组转换为有效的json
- JSON数组转换为JS对象数组
- 如何将数组转换为映射
- JavaScript:将字符串数组转换为文本区域
- javascript |数组转换
- 数组转换为多个字符串
- Javascript将数组转换为字符串并使其反向输出
- 将Byte数组转换为Angularjs中的Base64字符串
- 将对象数组转换为与nodejs/pg/unnest兼容的数组
- 将Javascript数组转换为PHP数组
- 将数组转换为键值对
- 使用Ramda将对象数组转换为普通对象
- javascript将对象数组转换为字符串以存储在s3中
- 使用.join方法将数组转换为不带逗号的字符串