Всем доброго вечера... Проблема, вернее, не с кодировкой, а у меня в голове, судя по всему... Имеется БД в кодировке SQL_Latin1_General_CP1_CI_AS. Имеется cakePHP с кодировкой windows-1251 Скрипты в кодировке windows-1251. Проблема: когда отправляем данные из скрипта и пытаемся сохранить в базу, в неё записываются крякозябры. У меня смутное чувство, что я где-то сильно туплю. Может быть. кто-нибудь подскажет?
Я тоже подозреваю, что можно... Знать бы как... Заколебался уже маны курить Проблематично.. Однако, в нескольких строках она там есть, что окончательно вводит меня в ступор
Надо указывать версию SQL Server! Для MS SQL Server 2000, насколько я понимаю, кодировка - задается 1 раз при установке сервера и не может меняться впоследствии программно или еще как-то. Помогает переустановка сервера с нужной кодировкой, обычно "Cyrillic_General_CI_AS". Если не хочется переустанавливать сервер, помогут пляски с бубном. Попробуйте использовать юникод - поля типа nvarchar и вызовы с клиента с передачей значений вида N'строковое_значение' (символ N обязателен и означает, что используется юникод). Однако (! сам не знал !), BOL дает такой совет: Т.е. в принципе МОЖНО поменять кодировку на установленном сервере. И для этого надо сделать REBUILD системной базы master и пользовательских баз. Опытом поделиться не могу, не делал, но в BOL есть пошаговая инструкция как это сделать. Ищите по теме "How to rebuild the master database (Rebuild Master utility)" PS: Не забудьте сообщить и результатах своих изысканий.
Ну и чтим в BOL для 2005-го следующее: Т.е. судя по шагам 1, 2 и 3 предлагается скриптануть метаданные и данные пользовательских баз, потом сделать REBUILD master, потом из скриптов поднять базы. Т.е. то же самое, что и для 2000-го.
Нельзя трогать сам сервер. Там еще и чужие проекты крутятся. Скачал EMSDataExport for Sql Server. Думаю сдампить бд, перевести в 1251, создать новую бд с SQL_Latin1_General_CP1251_CI_AS, импортировать и посмотреть, что получится...