在 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
我在 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