首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript中php chr()和ord()函数的等价性是什么

javascript中php chr()和ord()函数的等价性是什么
EN

Stack Overflow用户
提问于 2016-10-18 13:20:07
回答 4查看 25.4K关注 0票数 25

我在php代码中使用了按位运算符,它返回base64格式的解码字符串。我想实现与javascript相同的php代码。据我所知,相当于String.fromCharCode(n)ord()chr()n.charCodeAt(0)。但这两种最终输出是不同的。

PHP代码:-

代码语言:javascript
复制
<?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==

Javascript代码中的:-

代码语言: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)
}

正如你在上面看到的,javscript的输出和php的输出是不同的。我需要准确的输出在php代码中返回的javascript。谢谢

EN

回答 4

Stack Overflow用户

发布于 2016-10-18 13:31:27

代码语言:javascript
复制
var res = String.fromCharCode(65);

这个函数和在javascript中返回字符的chr()函数一样工作得很好。

票数 30
EN

Stack Overflow用户

发布于 2016-10-18 13:35:55

代码语言:javascript
复制
function myFunction() {
var str = "HELLO WORLD";
var n = str.charCodeAt(0);
    document.getElementById("demo").innerHTML = n;
}

对于ord(),您可以对JavaScript使用上面的函数

票数 16
EN

Stack Overflow用户

发布于 2018-12-30 11:02:49

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

代码语言:javascript
复制
function ord(str){return str.charCodeAt(0);}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40100096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档