有没有办法将常规 javascript utf-8 字符串编码为十进制 0-9(或者八进制 0-7,如果更方便的话)(八进制或 base10)?
我看到了这个 php 线程,我想要类似的 javascript 线程。
最佳答案
不确定您为什么要这样做,但根据您的需要,这很简单。 JavaScript 的 String.prototype.charCodeAt()
返回字符串中字符的 Unicode 数字值,最多可达 65,536 (假设您没有使用 > 0x10000 的 unicode 代码点;如果是,则为 consult the String.prototype.charCodeAt
documentation ) .
您可能使用的是 ASCII,这意味着您的数字字符代码最多为 255,这意味着您可以使用三位数字。所以首先我们需要一个函数来填充零:
function zeroPad(n, w){
while(n.toString().length<w) n = '0' + n;
return n;
}
然后我们可以创建一个函数将字符串转换为数字字符串:
function toNumbers(s){
var nums = '';
for(var i=0; i<s.length; i++) {
nums += zeroPad(s.charCodeAt(i), 3);
}
return nums;
}
然后是一个解码函数:
function fromNumbers(nums){
var s = '';
for(var i=0; i<nums.length; i+=3){
console.log(i + ': ' + nums.substring(i, i+3))
s += String.fromCharCode(nums.substring(i, i+3));
}
return s;
}
关于javascript - 将字符串编码为十进制数字 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21613942/