You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2014中如何将varbinary(max)转换为Base64?

SQL Server 2014 将varbinary(max)图片转换为Base64的正确方法

错误原因

你之前执行的语句SELECT CAST('' as varbinary(max)) FOR XML PATH(''), BINARY BASE64是对空二进制数据进行转换,自然无法得到正确的图片Base64编码。另外,若直接使用十六进制字面量(如0xFFD8FFE1...),需先将其转为合法的varbinary(max)类型,再进行Base64转换。

正确转换方式

1. 查询表中存储的图片列

假设你的表名为ImageTable,存储图片的列名为ImageData(类型为varbinary(max)),执行以下SQL语句:

SELECT ImageData FOR XML PATH(''), BINARY BASE64
FROM ImageTable

2. 使用十六进制字面量测试

如果是用示例的十六进制数据直接测试,需先将字面量转为varbinary(max)类型,再转换为Base64:

SELECT CAST(0xFFD8FFE115064578696600004D4D002A0000000800070... AS varbinary(max)) FOR XML PATH(''), BINARY BASE64

执行上述正确语句后,得到的结果就会和你预期的/9j/4RUGRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAA...一致。

补充说明

FOR XML PATH(''), BINARY BASE64是SQL Server中直接将二进制数据转换为标准Base64编码的原生方法,只要确保传入的是实际的图片二进制数据(而非空值或错误格式的字符串),就能得到符合Flutter开发需求的Base64字符串。

内容的提问来源于stack exchange,提问作者BaselCS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 04:45:33