Преобразование двоичного значения в строку и обратно в двоичное? - PullRequest
0 голосов
/ 27 августа 2018

У меня есть rowversion значение, которое поступает из базы данных в двоичном формате. Мне нужно преобразовать это значение в строку, чтобы передать мой код переднего плана. Затем, когда пользователь отправляет данные обратно на сервер, мне нужно преобразовать эту строку обратно в двоичный файл. Вот пример моих данных:

Binary 00000010586 

Выше выводится то, что я вижу, когда результат моего запроса возвращает значение. Тогда я попробовал это:

Кодированное значение выглядит следующим образом: iV

Затем я попытался декодировать значение обратно, и это то, что я использовал:

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

Тогда я получил это сообщение об ошибке: ByteArray objects cannot be converted to strings.

В моем столбце версии строки базы данных есть тип timestamp. Когда запрос возвращает это значение, он отображается в двоичном виде в ColdFusion. Я использую этот столбец как уникальный идентификатор для каждой строки, установленной в моей таблице. Есть ли способ обработать это преобразование в CldFusion и каков был бы лучший подход?

1 Ответ

0 голосов
/ 27 августа 2018

Вы работаете с двоичными данными, а не со строковыми кодировками. Вам нужно будет использовать 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

...