首页 > 解决方案 > sql server 不处理非 ASCII 字符

问题描述

我们平台的数据库已经停止接受非 ASCII 字符,尽管它以前可以工作并且尽管充分使用了 nvarchar 类型。我能够做的最小复制是来自 Management Studio 查询窗口的这个简单演示:

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

我在用着:

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

(迄今为止的最新版本)

ANSI 查询窗口的查询选项如下:

提前致谢。

标签: sql-servernvarchar

解决方案


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

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

输出:

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

推荐阅读