什么是javascript中的等效php chr()和ord()函数

vin*_*eet 17 javascript base64 encoding bitwise-operators

我在php代码中使用了bitwise运算符,它返回base64中的解码字符串.我希望实现php代码与javascript相同.按我的知识chr()等同于String.fromCharCode(n)ord()n.charCodeAt(0).但最终输出都不同.

PHP代码: -

<?php
$pass = "RuvEtrUt74gaDR5DufuChe";
$en = "";
foreach(str_split($pass) as $chr){
    $b1=((($chr = ord($chr)) >> 1) & 0xFF);
    $b2=($chr << (8 - 1));
     $en = $en.chr( $b1|$b2 );
}
$en = base64_encode($en); //Output:- )º;¢:9ª:›³°")š"º3º¡4²
echo ($en);
echo (base64_decode($en)); //Output:- Kbo7ojo5qjqbGrOwIimaIrozuqE0sg==
Run Code Online (Sandbox Code Playgroud)

在Javascript代码中: -

var pass = "RuvEtrUt74gaDR5DufuChe";
var en = "";
var passArr = pass.split('');
for (var i = 0; i < passArr.length; i++) {
    var b1 = (((passArr[i] = passArr[i].charCodeAt(0)) >> 1) & 0xFF);
    var b2 = (passArr[i] << (8 - 1));
    en += chr(b1 | b2);
}
console.log('en',en);//Output:- ??????????????????????
en = window.btoa(unescape(encodeURIComponent(en)));
console.log('en', en);//Output:- 4qSp46q646y74oqi46i646S54qqq46i64a6b4aia446z44Kw4oii4qSp4aqa4oii46q644yz46q64oah45C044qy
                     //need same as in php i.e, :- Kbo7ojo5qjqbGrOwIimaIrozuqE0sg==
function chr(codePt) {
    if (codePt > 0xFFFF) {
        codePt -= 0x10000
        return String.fromCharCode(0xD800 + (codePt >> 10), 0xDC00 + (codePt & 0x3FF))
    }
    return String.fromCharCode(codePt)
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,javscript输出与php输出不同.我需要javascript中的确切输出,它在PHP代码中返回.谢谢

小智 17

var res = String.fromCharCode(65);
Run Code Online (Sandbox Code Playgroud)

此函数与chr()javascript中的函数返回字符一样有效.


小智 8

function myFunction() {
var str = "HELLO WORLD";
var n = str.charCodeAt(0);
    document.getElementById("demo").innerHTML = n;
}
Run Code Online (Sandbox Code Playgroud)

对于ord(),您可以将以上函数用于JavaScript


Jes*_*ian 7

这段代码是相当于 PHP ord() 函数的 javascript。

function ord(str){return str.charCodeAt(0);}
Run Code Online (Sandbox Code Playgroud)