Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сохранение файла в cp1251 - jQuery (https://javascript.ru/forum/misc/68608-sokhranenie-fajjla-v-cp1251-jquery.html)

zhukovia 26.04.2017 17:10

Сохранение файла в cp1251 - jQuery
 
У меня есть запрос на ajax который получает в качестве ответа от сервера файл pdf его необходимо сохранить. Сделал сохранение следующим образом.
var blob=new Blob([response]);
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="myFileName.pdf";
link.click();

Все замечательно работает, только файл сохраняется в кодировке UTF8, а надо в Windows 1251. В отладчике строка response приходит правильной, но в
var blob=new Blob([response])

blob становится уже в два раза больше чем надо. Как мне получить нужную кодировку? Пробовал применять response.getBytes("Cp1251") но это почему то не сработало. Так тоже не получилось
byte[] winData = response.getBytes("Cp1251")

zhukovia 26.04.2017 21:17

Решил заменой Ajax на простой запрос
paramsPOST = paramsPOST + '&print=pdf';
	var form = document.createElement("form");
	form.setAttribute("method", "post");
	form.setAttribute("action", url+"?ID="+params['ID']);
	//form.setAttribute("target", "_blank");
	var pars = paramsPOST.substr(0).split('&');
	for(var key = 0; key < pars.length; key++) {
		var el = pars[key].split('=');
                 var hiddenField = document.createElement("input");
         	hiddenField.setAttribute("name", el[0]);
        	hiddenField.setAttribute("value", el[1]);
	        form.appendChild(hiddenField);
	}
form.submit();


Часовой пояс GMT +3, время: 04:28.