Текст, который должен составлять 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);
Вопрос:
Какой правильный способ экспортировать отчеты SSRS в формате CSV через Curl PHP при сохранении правильного кодирования символов (например, in-dashes, акцентированных символов и т. Д.)? Почему он работает через браузер, но не через Curl? Я ожидал получить кодированный файл CSV UTF-8 со специальными символами (например, en-dashes, с акцентированными буквами), отображаемый правильно-просто когда я загружаю отчет вручную из браузера. Бом, но это не решило проблему.
Подробнее здесь: https://stackoverflow.com/questions/796 ... instead-of
Мобильная версия