首页 > 解决方案 > 将二进制值转换为字符串并返回二进制?

问题描述

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

Binary 00000010586 

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

编码值如下所示:iV

然后我尝试将值解码回来,这就是我所使用的:

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

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

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

标签: coldfusionbinarydecodeencoderowversion

解决方案


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

以下示例将一些二进制数据转换为 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上运行示例


推荐阅读