gpt4 book ai didi

sql - 如何在标准 SQL 中解码 BASE64?

转载 作者:行者123 更新时间:2023-12-04 13:55:01 28 4
gpt4 key购买 nike

我正在尝试使用 BigQuery 中的标准 SQL 将一列 base64 值解散为解码的字符串,但到目前为止还没有任何运气。

我发现有一个函数叫 FROM_BASE64()但 -

答:文档使它看起来好像将 BASE64 转换为 BYTES,这意味着我需要额外的转换。

B. FROM_BASE64()甚至不工作 - 查询运行,但结果始终与我输入的编码字符串完全相同。

SELECT FROM_BASE64('aGVsbG8tc3RhY2tvdmVyZmxvdw==')

返回
"aGVsbG8tc3RhY2tvdmVyZmxvdw=="

这里最好的方法是什么?

最佳答案

Base64 是字节级编码算法,这就是为什么 FROM_BASE64() 的输出是 BYTES .

只要您不需要显示解码的字节,您就可以根据需要在查询中使用它们。但是原始字节在 BigQuery 中可能无法按原样显示,因此它可能选择在 BASE64 中显示它们。因此,您的示例将简单地将字符串文字解码为字节,然后将结果重新编码回 Base64,这将解释为什么您将输入字符串视为输出。

你可以投一个 BYTESSTRING ,但这仅在原始字节表示有效的 UTF-8 编码字符串时才有效。
或者,您可以使用 SAFE_CONVERT_BYTES_TO_STRING()解码 BYTESSTRING用 Unicode 代码点 U+FFFD 替换任何无效的 UTF-8 字节。

或者,您可以使用 FORMAT()BYTES 中显示每个字节十六进制 \x##格式。

关于sql - 如何在标准 SQL 中解码 BASE64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52993694/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com