MS SQL и UTF8

Добрый день.

Вот опять приходится делать часть интеграции с базой MS SQL.

Проблема состоит в прямом выводе данных с базы в кодировке UTF8, изначально база в CP1251.

Выбирать данные а потом применять ICONV как-то не красиво :(. Будет выводится множество строк и полей приблизительно 1025 или 1050 на страницу. Потому эта идея как то отпала.

Попытка поставить ‘charset’=>‘utf8’ вызывает ошибку, в чем и не сомневался :)

Где-то нашел советовали поставить mssql.charset = "UTF8" в php.ini, результат тот же.

Если есть у кого какие-то идеи буду рад опробовать.

Подымаю вверх, проблема так и осталась актуальной (

Я не очень уверен, но если данные в базе изначально хранятся в cp1251, то только ICONV, либо MSSQL имеет свои специфичные функции для перекодировки в запросах.

Смысл в том, что перекодировать данные из одной кодировки в другую придется руками (явно указывая параметры из какой кодировки в какую кодировать и явно вызывая какие-либо функции перекодирования),

в php.ini настройки типа mssql.charset = "UTF8" никчему привести и не должны т.к. пхп всеравно не знает из какой кодировки в UTF-8 надо переводить ваши данные MSSQL…

Я бы начал с того что покурил ман по MSSQL на предмет функций перекодировки…

Поэксперементируй с charset в конфиге:




		'db'=>array(

                  'connectionString'=>'mysql:host=localhost;dbname=yii_otpusk_map',

                   'username'=>'*********',

                   'password'=>'*********',

                   'charset'=>'utf8',		),



можно поставить utf8, cp1251 и т.д.

Мне помогло.

Для MS SQL? для MySQL помогает это я знаю.

А для MS SQL ругалось что не знает команды.

Попробуй в initConnection после строчки:


$stmt=$pdo->prepare('SET CHARACTER SET ?');

всунуть вот такое :


$pdo->query("set character_set_client='utf8'");

$pdo->query("set character_set_results='utf8'");

$pdo->query("set collation_connection='utf8_general_ci'");

Вот тут немного другой случай, но всё же.

MSSQL!

Может забыть про эту древнюю кодировку и конвертировать всё в утф? :))

Кратко - подключить pdo_dblib с freetds и в конфиге freetds установить кодировку подключения