将二进制值转换为字符串并返回二进制?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将二进制值转换为字符串并返回二进制?相关的知识,希望对你有一定的参考价值。

我有来自二进制格式的数据库的rowversion值。我需要将该值转换为字符串才能传入我的前端代码。然后,当用户将数据提交回服务器时,我需要将该字符串转换回二进制文件。以下是我的数据示例:

Binary 00000010586 

以上输出是我在查询结果返回值时看到的内容。然后我尝试了这个:

编码值如下所示:iV

然后我试图解码值,这是我用过的:

#charsetDecode( local.encodedVal, "utf-8" )#

然后我收到此错误消息:ByteArray objects cannot be converted to strings.

在我的数据库行版本列中有timestamp类型。当查询返回该值时,它在ColdFusion中表示为二进制。我将此列用作表中每行设置的唯一ID。有没有办法在CldFusion中处理这种转换?哪种方法最好?

答案

您使用的是二进制数据,而不是字符串编码。您将需要使用binaryEncodedbinaryDecode将数据作为字符串发送并将其转换回二进制。

以下示例将一些二进制数据转换为2个字符串表示形式,并使用转储中的binaryDecode将它们转换回相同的字节数组。

<cfscript>
    binaryData = toBinary("SomeBinaryData++");
    hexEncoded = binaryEncode(binaryData, "hex");
    base64Encoded = binaryEncode(binaryData, "base64");

    writeDump([
        binaryData,
        hexEncoded,
        base64Encoded,
        binaryDecode(hexEncoded, "hex"),
        binaryDecode(base64Encoded, "base64")
    ]);
</cfscript>

TryCF.com上运行示例

以上是关于将二进制值转换为字符串并返回二进制?的主要内容,如果未能解决你的问题,请参考以下文章

将 50 位二进制值转换为整数

C# COM 与 C++ COM 返回值

将十六进制字符串转换为整数

C# 将字符串转换为双精度/十进制并返回字符串,保留尾随零,为千位添加逗号

将 UUID 32 个字符的十六进制字符串转换为“YouTube 风格”的短 id 并返回

将非常大的数字转换为十六进制字符串