我有一个用于将字符串转换为 base64 编码字符串的 SQL 函数。唯一的问题是没有使用 UTF8,我可以说出来,因为我有一个单独的 C# 工具可以提供不同的输出。
SQL函数:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[Base64Encode] ( @sInput NVARCHAR(max) )
RETURNS NVARCHAR(max)
BEGIN
DECLARE @vInput VARBINARY(max)
DECLARE @sEncodedOutput NVARCHAR(max)
set @vInput = convert(varbinary(max), @sInput)
set @sEncodedOutput = cast('' as xml).value('xs:base64Binary(sql:variable("@vInput"))', 'NVARCHAR(max)')
RETURN @sEncodedOutput
END
C#
try
{
encodedValueTextbox.Text = Convert.ToBase64String(
Encoding.UTF8.GetBytes(valueTextbox.Text));
}
catch (Exception ex)
{
encodedValueTextbox.Text = ex.Message;
}
有没有办法让 SQL 使用 UTF8?