Преобразование двоичного значения в строку и обратно в двоичное?
Я имею rowversion
значение, которое приходит из базы данных в двоичном формате. Мне нужно преобразовать это значение в строку, чтобы передать мой код переднего плана. Затем, когда пользователь отправляет данные обратно на сервер, мне нужно преобразовать эту строку обратно в двоичный файл. Вот пример моих данных:
Binary 00000010586
Выше выводится то, что я вижу, когда результат моего запроса возвращает значение. Тогда я попробовал это:
Кодированное значение выглядит так: iV
Затем я попытался декодировать значение обратно, и это то, что я использовал:
#charsetDecode( local.encodedVal, "utf-8" )#
Затем я получил это сообщение об ошибке: ByteArray objects cannot be converted to strings.
В моем столбце версии строки базы данных есть timestamp
тип. Когда запрос возвращает это значение, он отображается в двоичном виде в ColdFusion. Я использую этот столбец как уникальный идентификатор для каждой строки, установленной в моей таблице. Есть ли способ обработать это преобразование в CldFusion и каков был бы лучший подход?
1 ответ
Вы работаете с двоичными данными, а не со строковыми кодировками. Вам нужно будет использовать 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