«č» преобразуется в «c» при запросах через SQL Server 2008 - PullRequest
2 голосов
/ 19 октября 2011

При выборе / вставке в мою базу данных SQL Server 2008 символы Центральной Европы преобразуются.

Например:

Select 'Kutenič'

Возвращает:

Kutenic

Почему это?И как я могу предотвратить это?Может ли мое веб-приложение ASP.NET иметь подобную проблему?

Ответы [ 2 ]

3 голосов
/ 19 октября 2011

Используйте префикс N

Select N'Kutenič'

Без этого строка будет преобразована в кодовую страницу параметров сортировки по умолчанию для вашей базы данных.

Или установите для параметров сортировки по умолчанию для вашей базы данных одно из следующих значений, если это больше подходит для вашей локали.

Albanian_X
Albanian_100_X
Bosnian_Latin_100_X
Croatian_X
Croatian_100_X
Czech_X
Czech_100_X
Estonian_X
Estonian_100_X
Hungarian_X
Hungarian_100_X
Hungarian_Technical_X
Hungarian_Technical_100_X
Latvian_X
Latvian_100_X
Lithuanian_X
Lithuanian_100_X
Polish_X
Polish_100_X
Romanian_X
Romanian_100_X
Serbian_Latin_100_X
Slovak_X
Slovak_100_X
Slovenian_X
Slovenian_100_X
Turkmen_100_X
SQL_Croatian_CP1250_X
SQL_Czech_CP1250_X
SQL_Estonian_CP1257_X
SQL_Hungarian_CP1250_X
SQL_Latin1_General_CP1250_X
SQL_Latin1_General_CP1257_X
SQL_Latvian_CP1257_X
SQL_Lithuanian_CP1257_X
SQL_Polish_CP1250_X
SQL_Romanian_CP1250_X
SQL_Slovak_CP1250_X
SQL_Slovenian_CP1250_X
0 голосов
/ 19 октября 2011

У меня была такая же проблема, чтобы решить ее несколько лет назад. Я просто помню, что мы следовали двум путям, чтобы найти решение:

  1. В соответствии с предложением #Martin, мы проверили проблему сортировки
  2. но я думаю, что правильным решением было бы изменить тип данных поля, где поля char \ varchar не могут хранить символы из более чем одного набора символов. Тогда у нас были запутанные проблемы между французским и румынским алфавитом. Тогда было решено переключить поля char \ varchar в поля nchar \ nvarchar (совместимые с UTF-8).
...