我正在尝试使用纯 SQLite 语言将表示十六进制数据的字符串转换为十六进制数据的文本编码(ASCII、UTF-8 等)。本质上我想要X'[hex]'
语法的功能,但应用于以编程方式派生的十六进制字符串。
例如,我想要 ,select X(hex_data_string) from ...
这不是合法的 SQLite 语法。
显然,在上面的代码片段中,如果数据不是有效的文本编码,我不一定能够输出数据。也就是说,如果hex_data_string
包含控制字符等,则X()
应该以某种方式失败。如果可能,则必须有默认字符编码,或者必须以某种方式指定所需的字符编码。
我不是在询问如何从 SQLite 数据库中检索十六进制数据字符串值,然后使用 C 或其他工具进行转换。我正在尝试在纯 SQLite 中执行此转换,因为我有查询,我检查它返回表示二进制数据的十六进制字符的文本表示。大多数二进制数据是 ASCII,因此我希望能够在适用时快速查看查询输出中二进制数据的内容。
直观地说,我认为这可以通过将十六进制数据字符串转换为 blob 并使用来完成,hex()
但仍然返回十六进制数据字符串。
有任何想法吗?
可能的重复: