SSRS CSV Экспорт через PHP Curl возвращает неправильное кодирование (например, «» вместо « -»), но работает при загрузкеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 SSRS CSV Экспорт через PHP Curl возвращает неправильное кодирование (например, «» вместо « -»), но работает при загрузке

Сообщение Anonymous »

Я использую PHP с Curl для программной загрузки SSRS (SQL Server Services Services) в формате CSV. Загрузка работает, но кодирование персонажа выключено. Например: < /p>
Текст, который должен составлять 20–30% (с помощью en-dash), появляется как 20–30%. < /P>
Другие специальные символы также искажены. Инструменты. < /p>
Вот упрощенная версия моего PHP -кода: < /p>

Код: Выделить всё

$ch = curl_init("http://qreports-ssrs-site.com/ReportServer?%2fMyReport&rs:Format=CSV");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 1500,
CURLOPT_HTTPAUTH => CURLAUTH_NTLM,
CURLOPT_USERPWD => "DOMAIN\\user:pass",
CURLOPT_HTTPHEADER => ["Accept: text/csv"],
]);

$response = curl_exec($ch);
curl_close($ch);

// Encoding conversion
$encoding = mb_detect_encoding($response, ['UTF-8', 'Windows-1252', 'ISO-8859-1'], true);
if ($encoding !== 'UTF-8') {
$response = mb_convert_encoding($response, 'UTF-8', $encoding);
}

// Add BOM
if (substr($response, 0, 3) !== "\xEF\xBB\xBF") {
$response = "\xEF\xBB\xBF" . $response;
}

file_put_contents('report.csv', $response);
Я попытался обнаружить кодирование и преобразование его в UTF-8, также добавив BOM, но специальные символы все еще не визуаливы. /> Принуждение различных заголовков принятия < /p>
Вопрос:
Какой правильный способ экспортировать отчеты SSRS в формате CSV через Curl PHP при сохранении правильного кодирования символов (например, in-dashes, акцентированных символов и т. Д.)? Почему он работает через браузер, но не через Curl? Я ожидал получить кодированный файл CSV UTF-8 со специальными символами (например, en-dashes, с акцентированными буквами), отображаемый правильно-просто когда я загружаю отчет вручную из браузера. Бом, но это не решило проблему.

Подробнее здесь: https://stackoverflow.com/questions/796 ... instead-of
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»