1

我构建的一个应用程序被我们的组织在全球范围内使用,并且需要支持几种不同的货币。SQL Server 在处理“正常”的东西(即英镑符号、欧元符号)方面做得很好,但是当我介绍沙特里亚尔 (ريال SAR) 的符号时,它会将其存储为问号。

客户端是 100% jQuery/javascript 与支持 REST 的 WCF 服务一起工作。

我在这里遇到了一些谈论 LocaleID 的东西

希望有人可以对此有所了解。

4

1 回答 1

5

将您的字符串格式化为nVarchar. 如果它们位于表中的字段中,请更改数据类型。如果它们只是动态格式化,请使用N前缀。 nVarchar是 unicode,它是一个扩展的国际字符集。

例子:

SELECT 'ريال'

select N'ريال'

在我的系统上,第一个显示????,第二个正确显示符号。

编辑

如果按原样输入字符,varchar您仍然会遇到问题。

请参见下面的示例:

DECLARE @t nvarchar(10) = N'ريال'
DECLARE @x nvarchar(10) = 'ريال'

SELECT @t
SELECT @x
于 2011-07-19T14:23:26.960 回答