首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColdFusion替代hex2bin函数

ColdFusion替代hex2bin函数
EN

Stack Overflow用户
提问于 2015-07-20 12:36:19
回答 2查看 408关注 0票数 2

我想解码十六进制编码的二进制字符串;它将使用PHP的hex2bin函数工作。但我在ColdFusion中也需要同样的东西。

代码语言:javascript
复制
 $key="43480170";

 echo hex2bin($key);

输出: CHp

我试过下面的代码。但是这个ColdFusion代码并没有给出我在PHP中得到的结果;

ColdFusion

代码语言:javascript
复制
<cfset key="43480170" />

<cfoutput>#binaryDecode(key, "hex" ).toString()#</cfoutput>

Output:每次运行时都不同。

我也需要得到与“CHp”在ColdFusion中相同的结果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-20 13:43:54

您需要使用ColdFusion提供的函数来使用toString(xxx)将二进制表示转换为字符串,而不是使用底层的java函数xxx.toString(),因为两者都会呈现不同的结果。这听起来很奇怪,但事实并非如此,java是一种硬类型语言,您不能简单地将二进制数据转换成这样的字符串表示形式,请参阅这篇文章。另外,如果您在原始CF代码中注意到,每次运行它时,输出都是不同的。

回到你的问题上,你只需要做一点小小的改变就可以了:

代码语言:javascript
复制
<cfset key="43480170" />
<cfoutput>#toString(binaryDecode(key, "hex" ))#</cfoutput>

您可以通过在这里运行代码来检查这两种方法之间的输出差异。

更新:

@Leigh关于使用CharsetEncode()函数执行二进制到字符串转换的推荐方法的有用注释之后,代码将得到以下结果:

代码语言:javascript
复制
<cfset key="43480170" />
<cfoutput>#CharsetEncode(binaryDecode(key, "hex" ),'utf-8')#</cfoutput>

您可以使用更改检查更新要点

票数 2
EN

Stack Overflow用户

发布于 2015-07-20 13:38:16

你们很亲密。这应该能起作用。

代码语言:javascript
复制
<cfset key="43480170">
<cfoutput>#toString(binaryDecode(key, "hex" ))#</cfoutput>

返回CHp

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31516701

复制
相关文章

相似问题

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