SQL Server 2008 и международные валюты - PullRequest
1 голос
/ 19 июля 2011

Приложение, которое я создал, используется во всем мире нашей организацией и должно поддерживать несколько различных валют. SQL Server хорошо справлялся со «нормальными» вещами, то есть символом GBP, символом евро, но когда я ввел символ для Саудовского риала (ريال SAR), он сохраняет его в виде вопросительных знаков.

Клиентская часть - это 100% jQuery / javascript, работающий со службами WCF с поддержкой REST.

Я столкнулся с чем-то, говоря о LocaleID здесь

Надеясь, что кто-то может пролить свет на это.

1 Ответ

5 голосов
/ 19 июля 2011

Отформатируйте ваши строки как nVarchar.Если они находятся в полях таблицы, измените тип данных.Если они просто отформатированы на лету, используйте префикс N.nVarchar - это Unicode, который является расширенным международным набором символов.

Пример:

SELECT 'ريال'

select N'ريال'

В моей системе первый показывает ????, второй показывает символ правильно.

РЕДАКТИРОВАТЬ

Если символы были введены как varchar, у вас все равно будут проблемы.

См. Пример ниже:

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

SELECT @t
SELECT @x
...