sql 服务器不处理非 ASCII 字符

sql server not handling non-ascii characters

我们平台的数据库已停止接受非 ASCII 字符,尽管它在之前和完全使用 nvarchar 类型时都可以工作。我能够做的最小复制是来自 Management Studio 查询的简单演示 window:

DECLARE @X nvarchar(max) = 'Activbasē ਪਾਕਿਸਤਾਨ ਪੰਜਾਬ ਦਾ ਦਾਰੁਲ'
PRINT @X
SELECT @X AS X
-- Output (for table and PRINT): Activbase ???????? ????? ?? ?????

我正在使用:

  1. SQL 服务器版本:Microsoft SQL Server 2017 (RTM-GDR) (KB4505224) - 14.0.2027.2 (X64)
  2. Management Studio 版本:v18.4(组件版本 15.0.18206.0)

(两个最新版本)

ANSI 查询 window 的查询选项如下:

提前致谢。

你犯了一个小错误,你错过了 N 前缀来表明你的字符串是 Unicode(国家语言字符集):

DECLARE @X nvarchar(max) = N'Activbasē ਪਾਕਿਸਤਾਨ ਪੰਜਾਬ ਦਾ ਦਾਰੁਲ'
PRINT @X
SELECT @X AS X

输出:

Activbasē ਪਾਕਿਸਤਾਨ ਪੰਜਾਬ ਦਾ ਦਾਰੁਲ