Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Не отображается русский шрифт в MS SQL 2008


Автор: Voldemar2004 21.12.2010, 19:56
Делаю БД в MS SQL 2008, на латинице все нормально, а с русской кодировкой проблемы. Как исправить ?

Автор: AntonL 21.12.2010, 21:11
Какие именно проблемы?
Подробнее опиши ситуацию.

Автор: Voldemar2004 21.12.2010, 21:29
AntonL, ну сделал БД в MS SQL 2008, затем делаю

Код

INSERT INTO


и русские и английские буквы вставляет, но русские выглядят как знаки вопроса:

user posted image

Автор: Akina 21.12.2010, 22:35
http://msdn.microsoft.com/ru-ru/library/ms187828(v=SQL.100).aspx

Автор: Voldemar2004 21.12.2010, 23:40
Цитата

Самый простой способ управлять символьными данными в международных базах данных — всегда использовать типы данных Юникода nchar, nvarchar и nvarchar(max) вм��сто их эквивалентов, отличных от Юникода: char, varchar и text.


Поменял типы с varchar на nvarchar. Сохраняю в юникодовой кодировке, всё равно вместо русских букв знаки вопроса.

Автор: Akina 21.12.2010, 23:46
Смотри настройки всей цепи. Сервера. Базы данных. Драйвера. Студии. Где-то что-то неверно преобразуется, не стыкуется, а потому на выходе - вопросы.

Автор: Voldemar2004 22.12.2010, 19:02
Akina, там всё нормально с настройками ! smile Оказывается эта проблема очень популярна smile http://www.sql.ru/Forum/actualthread.aspx?bid=19&tid=698807&hl=

Вот решение:
Код
INSERT INTO tableName VALUES (N'Значение')


Надо дописывать N перед вставляемым значением, это значит юникод.

Автор: Akina 22.12.2010, 21:43
Это есть в MSDN - просто надо было почитать...

Автор: Voldemar2004 22.12.2010, 22:24
Akina, это понятно smile но почему авторы учебников и книг по MS SQL в примерах пишут

 
Код

Create table T (varchar(50))


вместо nvarchar и вместо 
Код

insert into T values(N'val')


Пишут 
Код

insert into T values('val')

Автор: Akina 22.12.2010, 23:04
Цитата(Voldemar2004 @  22.12.2010,  23:24 Найти цитируемый пост)
почему авторы учебников и книг по MS SQL в примерах пишут

Потому что авторы по большей части англоязыкие, а примеры - на латинице. И юникод им как-то в никуда не впился.
Если же автор - наш, отечественный, и книга - его, а не перевод, то в ней непременно этот момент будет расмотрен.

Автор: Voldemar2004 23.12.2010, 00:25
В том то и дело, что автор как раз наш отечественный и названия всех таблиц, полей и значений на русском языке smile хотя список литературы все равно английский smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)