2015-11-26 43 views
2

我有一个SQL表,我试图返回值作为字符串。 值应该是像悉尼,墨尔本,马夸里港等城市名称SQL NVARCHAR(MAX)返回ASCII和怪异字符而不是文本

但是当我运行一个选择我要么得到黑色的结果,或如第一张图片中详细说明一些奇怪的倒退L字符。列是

SELECT ctGlobalName FROM Crm.Cities 

enter image description here

然后我用MSSQL的编辑前200行功能,我可以看到城市的名字尝试一个nvarchar(MAX),而且所有这些奇怪的ASCII字符。

enter image description here

现在我没有创建数据库,我只是在其上运行的查询。我读过的一些内容表明这是Collat​​ion问题。但是表中的SQL_Latin1_General_CP1_CI_AS与服务器排序规则匹配。

我确定必须有一些我可以添加到我的选择查询返回值作为一个普通的字符串。有没有什么我可以做我的选择查询返回预期的格式没有怪异的字符?

回答

1

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

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

无论哪种方式,你可能需要做一些字符串操作来去掉你不想要的字符。

+0

谢谢。是的,最终,我们的开发人员已经存储了这样的数据,以便拥有多种翻译和文化。幸运的是,他们提供了一个函数,可以为特定文化提取字符串。 – L0ckz0r

相关问题