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