2
我有一个SQL函数用于将字符串转换为base64编码的字符串。唯一的问题是UTF8没有被使用,我可以说,因为我有一个单独的C#工具,它提供了不同的输出。Base64在SQL中编码utf8字符串
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?
虽然我不能满足你的问题,但我想知道你为什么要base64编码UFT-8字符串?你是否试图隐藏文字?如果你想这么做,最好去加密。 – GameScripting
base64给出的'随机文本'看起来就足够了 – LynchDev
@游戏脚本:由于有256个以上的字符代码,所以不能base64编码nvarchar值,所以文本必须编码为字节格式,例如使用UTF-8。 – Guffa