首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java 2 PHP翻译

java 2 PHP翻译
EN

Stack Overflow用户
提问于 2011-05-24 07:49:02
回答 2查看 893关注 0票数 0

我有一个用Java编写的类型代码:

代码语言:javascript
复制
public static String asHex(byte[] buf) 
{
    StringBuilder strbuf = new StringBuilder(buf.length << 1);
    for (byte aByte : buf) {
        if (((int) aByte & 0xff) < 0x10) {
            strbuf.append('0');
        }
        strbuf.append(Long.toString((int) aByte & 0xff, 16));
    }
    return strbuf.toString();
}

这和PHP中的base64_decode是一样的吗?

EN

回答 2

Stack Overflow用户

发布于 2011-05-24 07:55:28

如果您有时间,最简单的方法是在您的函数和PHP函数中运行相同的字符串,并查看它们是否产生相同的结果。或者,如果你真的有空闲的时间,读一读this,看看你是否能解决这个问题。

编辑:在进一步研究之后,它似乎只是将字节数组转换为十六进制字符串,正如您所指出的,这不是base64编码。

我认为PHP函数相当于它所做的事情是bin2hex

票数 0
EN

Stack Overflow用户

发布于 2011-05-25 20:12:22

正如@James所说: bin2hex会这样做:

代码语言:javascript
复制
<?php
 $str = "Hello world!";
 echo bin2hex($str) . "<br />";
?>

所产生的结果与

代码语言:javascript
复制
static public void main(String args[]) {
    String str= "Hello world!";
    byte[] x = str.getBytes();
    String s = asHex(x);
    System.out.println (s);
}

public static String asHex (byte buf[]) {
    StringBuffer strbuf = new StringBuffer(buf.length * 2);
    int i;
    for (i = 0; i < buf.length; i++) {
        if (((int) buf[i] & 0xff) < 0x10)
            strbuf.append("0");
        strbuf.append(Long.toString((int) buf[i] & 0xff, 16));
    }
   return strbuf.toString();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6104316

复制
相关文章

相似问题

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