) 我搜索了高低,但我找不到我需要的东西。或者我愚蠢地把它弄好; - )
我需要一个带有几个输入框的页面,我可以输入一些文本,然后输入每个输入下方的输出区域,显示转换为某些预定义数字的文本。
示例:
输入:abcdefghiæøå(我需要各种各样的字符,如。,/:等。)
输出:064 065 066 067 068 032
所以它需要像这样转换:
“a”=“064”
“b”=“065”
“space”=“032”
(是的,输出中的每个数字都需要分开,或者每个数字后面加一个空格)
我在php和javascript中尝试了一些不同的密码指南,但无法使其工作。我做了一个Excel文档,可以做一些,但它有可以转换的有限数量的字符,然后它开始表现怪异。所以我想也许PHP就是答案!
非常感谢任何帮助 /拉斯穆斯
答案 0 :(得分:1)
在elclanrs的精神中删除了答案,并为后人:
<script>
// Using standard for loop
function stringToCharcodes(s) {
var result = [];
function pad(n){ return (n<10? '00' : n<100? '0' : 0) + n;}
for (var i=0, iLen=s.length; i<iLen; i++) {
result.push(pad(s.charCodeAt(i)));
}
return result.join(' ');
}
// Using ES5 forEach
function stringToCharcodes2(s) {
var result = [];
function pad(n){ return (n<10? '00' : n<100? '0' : 0) + n;}
s.split('').forEach(function(a){result.push(pad(a.charCodeAt(0)))});
return result.join(' ');
}
</script>
<input onkeyup="document.getElementById('s0').innerHTML = stringToCharcodes(this.value);"><br>
<span id="s0"></span>
如果您想要自定义映射,请使用对象(我只包含2个字符,您可以根据需要添加任意数量):
var mapChars = (function() {
var mapping = {'198':'019', '230':'018'};
return function (s) {
var c, result = [];
for (var i=0, iLen=s.length; i<iLen; i++) {
c = s.charCodeAt(i);
result.push(c in mapping? mapping[c] : c);
}
return result.join(' ');
}
}());
alert(mapChars('Ææ')); //
使用字符代码进行映射似乎是一种合理的解决方案,使用实际字符可能会受到不同页面字符编码的影响。