sql服务器未处理非ASCII字符

问题描述 投票:0回答:1

尽管我们的平台的数据库在使用nvarchar类型之前和之前都已运行,但它已停止接受非ASCII字符。我能够做的最小复制是从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查询窗口的查询选项如下:

  • SET QUOTED_IDENTIFER =开启
  • SET ANSI_NULL_DFLT_ON =开启
  • SET ANSI_PADDING =开
  • SET ANSI_WARNINGS =开
  • SET ANSI_NULLS =开启

  • SET IMPLICIT_TRANSACTIONS =关闭

  • SET CURSOR_CLOSE_ON_COMMIT =关闭

提前感谢。

sql-server nvarchar
1个回答
0
投票

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

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

输出:

Activbasē ਪਾਕਿਸਤਾਨ ਪੰਜਾਬ ਦਾ ਦਾਰੁਲ
© www.soinside.com 2019 - 2024. All rights reserved.