кодирование JSON производит ошибку JSON UTF8 из MSSQL-SELECT
У меня есть раздражающая проблема с запросом базы данных к mssql. Если результат содержит специальные символы, такие как немецкий 'ä', я не могу использовать json_encode чтобы получить результат как JSON правильно.
json_last_error возвращение 5 что равно JSON_ERROR_UTF8. Я предполагаю, что база данных не возвращает значения, как UTF-8 закодирован. Коллекция базы данных *Latin1_General_CI_AS* и затронутые столбцы varchars.
php в MSSQL.charset конфигурации не имеет никакого эффекта.
Я читал, что пользователи mysql могут использовать mysql_query('SET CHARACTER SET utf8');
для правильного кодирования возвращаемых значений. Что я могу сделать, чтобы правильно получить значения для mssql?
подсказка - я не могу ничего изменить в базе данных.
2 ответов
вы можете просто установить это соединение также:
$result = sqlsrv_connect($hostname, array(
'UID' => $username,
'PWD' => $password,
'Database' => $database,
"CharacterSet" => "UTF-8" // <---- here the magic happens
));
для меня это более легкий путь.