MSSQL проблема с кирилицей

atlantis

Guest
MSSQL проблема с кирилицей

При ответе на запрос к базе, содержащей русские символы, выдаётся сообщение
"Warning: Sybase error: WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?'). (severity 16)" и вместо слова, например, "привет", выдайтся "??????"

Подскажите. как поступить?

Сергей
 

Yukko

Новичок
с collation полей поиграйся. Ну и еще есть вариант, что поля nvarchar надо перевести в varchar, ntext в text
 

valerchik

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

Grumbold

Новичок
отключать автоконвертацию - поправить ключ в реестре.
а ключ такой:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\DB-Lib
параметр AutoAnsiToOem нужно выставить в OFF
 

Craelfar

Новичок
У меня такая же проблема... Стоит Windows2003, php5, MSSQL2000. При попытке передать в БД апдейтом русские символы никаких предупреждений не выдает, но символы заменяет на "?????". Ключ в реестре изменил - не помогло. Данные передаю строкой:
PHP:
$rs = $db->Execute("Update Test set Name='$Name'  where ID=001)
Соответственно в $name хранится строка кирилицы. Бьюсь уже четвертый день, помогите плиз.
Хм... тут порылся еще... вроде как проблемма в SQL сервере, ибо апдейт дает тот же результат и при вводе SQL-апроса через Query Analyzer. Поле Name - типа nvarchar. Но вот в чем же трабл....

-~{}~ 06.12.05 17:13:

Ммм... вобщем, разрулилось... Помогла смена колейшна БД и установка локали в скрипте. Спасибо, что никто не помог =)
 

terosan

Новичок
В догонку.

Еще можно передавать в базу данных с помощью bin2hex,
А там их разбирать:
CONVERT(VARCHAR(96),Переданная переменная)
 
Сверху