【问题标题】:SQL NVARCHAR(MAX) returning ASCII and Weird Characters instead of TextSQL NVARCHAR(MAX) 返回 ASCII 和奇怪的字符而不是文本
【发布时间】:2016-02-29 00:42:06
【问题描述】:

我有一个 SQL 表,我试图将值作为字符串返回。 值应该是悉尼、墨尔本、马夸里港等城市名称。

但是当我运行选择时,我要么得到黑色结果,要么如第一张图片中所详述的那样,出现了一些奇怪的向后 L 字符。该列是 NVARCHAR(MAX)

SELECT ctGlobalName FROM Crm.Cities

然后我尝试使用 MSSQL 的编辑前 200 行功能,我可以看到城市的名称,还可以看到所有这些奇怪的 ascii 字符。

现在我没有创建数据库,我只是在上面运行查询。我读过的一些东西表明这是排序规则的问题。但该表是与服务器排序规则匹配的 SQL_Latin1_General_CP1_CI_AS。

我确信一定有一些东西可以添加到我的选择查询中,以将值作为普通字符串返回。我可以对我的选择查询做些什么来返回没有奇怪字符的预期格式吗?

【问题讨论】:

    标签: sql sql-server ascii ssms collation


    【解决方案1】:

    NVARCHAR 数据类型可以存储 Unicode 字符,这些字符用于 ASCII 字符集不支持的语言,即非英语(或相关)语言,例如中文或印度尼西亚语。如果您的 SQL Server 或 Windows 没有安装该语言,那么您可能会看到看起来很奇怪的数据表示。

    另一方面,也可能是更新此表的应用程序刚刚在该列中存储了错误数据。

    无论哪种方式,您都可能需要进行一些字符串操作来去除您不想要的字符。

    【讨论】:

    • 谢谢。是的,最终我们的开发人员存储了这样的数据,以便拥有多种翻译和文化。幸运的是,他们提供了一个函数来提取给定文化的字符串。
    猜你喜欢
    • 2011-01-21
    • 2011-03-07
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多