Select 查询输出为 ????????????用不同的语言文本
Select Query giving output as ??????????? with different language text
为什么这个查询给我 ????????作为输出。
Declare @Search NVARCHAR(MAX) = 'اختبار كتاب اللغة العربية'
SET @Search = N''+ @Search
select @Search
这个工作正常的地方:-
Declare @Search NVARCHAR(MAX) = N'اختبار كتاب اللغة العربية'
select @Search
我想让我的查询动态化。还有其他方法吗?
动态的,因为我可以在@Search 参数中传递任何内容。我有一个 .NET 应用程序,我将在 @Search 参数中传递要搜索的字符串,它可以是英语或阿拉伯语。
因为你需要在字符串字面量前加上 N 来标识它是 Unicode 字符串,否则它会被视为只包含单字节字符。
你能详细说明一下吗"I want to make my query dynamic"?
Declare @Search NVARCHAR(MAX) = 'اختبار كتاب اللغة العربية'
当您执行此行时,它会将字符串文字视为单字节文字并将其分配给变量@Search。该变量能够存储一个 unicode 字符串(但您没有为其分配一个字符串)。等你以后引用它的时候,文本已经被修改了,你已经丢失了一些编码并且无法恢复。在将其分配给变量时,您必须在文字前加上 N。
为什么不能在脚本中添加该前缀?
为什么这个查询给我 ????????作为输出。
Declare @Search NVARCHAR(MAX) = 'اختبار كتاب اللغة العربية'
SET @Search = N''+ @Search
select @Search
这个工作正常的地方:-
Declare @Search NVARCHAR(MAX) = N'اختبار كتاب اللغة العربية'
select @Search
我想让我的查询动态化。还有其他方法吗?
动态的,因为我可以在@Search 参数中传递任何内容。我有一个 .NET 应用程序,我将在 @Search 参数中传递要搜索的字符串,它可以是英语或阿拉伯语。
因为你需要在字符串字面量前加上 N 来标识它是 Unicode 字符串,否则它会被视为只包含单字节字符。
你能详细说明一下吗"I want to make my query dynamic"?
Declare @Search NVARCHAR(MAX) = 'اختبار كتاب اللغة العربية'
当您执行此行时,它会将字符串文字视为单字节文字并将其分配给变量@Search。该变量能够存储一个 unicode 字符串(但您没有为其分配一个字符串)。等你以后引用它的时候,文本已经被修改了,你已经丢失了一些编码并且无法恢复。在将其分配给变量时,您必须在文字前加上 N。
为什么不能在脚本中添加该前缀?