在 SQL 服务器中检测 UTF-8

Detecting UTF-8 in SQL Server

我在 C# 中有这个方法:

public static int HasUniCodeCharacter(string text)
{
    return Convert.ToInt32(Regex.IsMatch(text, "[^\u0000-\u00ff]"));
}

我想知道,如果我想在 SQL 中有一个函数来完成这个方法工作,我应该如何写这个?

您可以使用 sql 中的一种非 unicode 归类来转换字符串,以查看 returns 是否相同的 tsring,这就是您如何确定它是 unicode 字符串还是没有。

CREATE FUNCTION IsUnicode (@string AS NVARCHAR(500))
RETURNS INT
AS 
BEGIN 
RETURN (CASE WHEN CAST(@string AS VARCHAR(MAX)) COLLATE Latin1_General_CI_AI = @string THEN 1 ELSE 0 END)
END