gpt4 book ai didi

c# - Base64 字符串编码 C# 与 TSQL

转载 作者:太空宇宙 更新时间:2023-11-03 19:44:56 26 4
gpt4 key购买 nike

我在 C# 和 TSQL 中有 base64 字符串编码/解码函数,我的问题是 C# 的编码结果与 TSQL 的编码结果不同。

我的目标是:

  1. C# 编码的字符串应该在 TSQL 中解码,反之亦然
  2. 这两个函数都应该能够编码/解码 unicode 字符

C#

Convert.ToBase64String(Encoding.UTF8.GetBytes("test"));

Result: dGVzdA==

TSQL

SELECT CAST(N'' AS XML).value('xs:base64Binary(xs:hexBinary(sql:column("bin")))', 'NVARCHAR(MAX)')   Base64Encoding
FROM
(
SELECT CAST(N'test' AS VARBINARY(MAX)) AS bin
) AS bin_sql_server_temp

Result: dABlAHMAdAA=

知道如何匹配结果吗?

最佳答案

SQL Server 使用 UTF-16。您的 C# 代码使用的是 UTF-8,因此存在差异。

要让 C# 代码使用 UTF-16,您可以这样做:

Convert.ToBase64String(Encoding.Unicode.GetBytes("test"))

Result: dABlAHMAdAA=

关于c# - Base64 字符串编码 C# 与 TSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47071865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com