SQL 服务器函数 returns 无法识别的文本
SQL Server function returns unrecognized text
我创建了一个用户定义的函数,它从 HTML 标签中剥离输入文本,但发现它出于某种原因也会破坏阿拉伯文本。
我想:也许函数的逻辑导致文本在某处被转换为 VARCHAR,所以我使该函数非常简单。它需要一个 NVARCHAR 并将 returns 它传递给调用者。这是功能:
CREATE FUNCTION [dbo].[udf_test] (@string NVARCHAR(MAX))
RETURNS NVARCHAR(MAX) AS
begin
return @string
end
那我做了个小测试:
select dbo.udf_test('إختبار اللغة العربية Testing Arabic ');
输出是:
?????? ????? ??????? Testing Arabic
如果我这样做,输出很好:
select 'إختبار اللغة العربية Testing Arabic ';
为什么会这样?
您需要明确指定字符串为 NVARCHAR 类型。在字符串前加一个 N 应该可以解决问题
select dbo.udf_test(N'إختبار اللغة العربية Testing Arabic ');
我创建了一个用户定义的函数,它从 HTML 标签中剥离输入文本,但发现它出于某种原因也会破坏阿拉伯文本。
我想:也许函数的逻辑导致文本在某处被转换为 VARCHAR,所以我使该函数非常简单。它需要一个 NVARCHAR 并将 returns 它传递给调用者。这是功能:
CREATE FUNCTION [dbo].[udf_test] (@string NVARCHAR(MAX))
RETURNS NVARCHAR(MAX) AS
begin
return @string
end
那我做了个小测试:
select dbo.udf_test('إختبار اللغة العربية Testing Arabic ');
输出是:
?????? ????? ??????? Testing Arabic
如果我这样做,输出很好:
select 'إختبار اللغة العربية Testing Arabic ';
为什么会这样?
您需要明确指定字符串为 NVARCHAR 类型。在字符串前加一个 N 应该可以解决问题
select dbo.udf_test(N'إختبار اللغة العربية Testing Arabic ');