powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xml + xslt = html, кодировка сбивается
4 сообщений из 4, страница 1 из 1
xml + xslt = html, кодировка сбивается
    #33719264
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет.
есть xml файл, вот заголовок:
Код: plaintext
1.
<?xml version="1.0" encoding="WINDOWS-1251"?>
есть xslt файл:
Код: plaintext
1.
2.
3.
4.
5.
<?xml version="1.0" encoding="Windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
....
вот конвертирую в html:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
	XML::IXMLDOMDocumentPtr pXml;
	pXml.CreateInstance(__uuidof(XML::DOMDocument));
	pXml->put_async(false);
	pXml->load(_bstr_t(GetXMLContentFilePath()));
	XML::IXMLDOMDocumentPtr pXsl;
	pXsl.CreateInstance(__uuidof(XML::DOMDocument));
	pXsl->put_async(false);
	pXsl->load(_bstr_t(GetTemplateFolder() + GetTemplateName()));
	std::ofstream f(ctmp_name);
	f << pXml->transformNode(pXsl);
	bresult = TRUE;
получается html файл, вот его начало:
Код: plaintext
1.
2.
3.
4.
5.
6.
<html>

<head>

<META http-equiv="Content-Type" content="text/html; charset=UTF-16">

и в итоге символы отображаются квадратиками и прочей ерундой. Почему при конвертировании не сохранилась кодировка Windows-1251 ?
...
Рейтинг: 0 / 0
xml + xslt = html, кодировка сбивается
    #33719714
AlexVer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовать
<xsl:output method="html" encoding="windows-1251" />
...
Рейтинг: 0 / 0
xml + xslt = html, кодировка сбивается
    #33719775
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexVerПопробовать
<xsl:output method="html" encoding="windows-1251" />

если не поможет это, то можно "добить" так:
<xsl:output method="html" media-type="text/html; charset=windows-1251" />
хотя, оно заменится парсером на такую вот "хрень":
<META http-equiv="Content-Type" content="text/html; charset=windows-1251; charset=UTF-16">
Но, браузеру будет уже все равно, он подхватит только первое упоминание "charset" ...

А "encoding" в декларации XML-документа (<?xml version="1.0" encoding="Windows-1251"?>) - это просто указание парсеру в какой кодировке следует интерпретировать текущий документ (XML, XSLT), но ни в коем случае не выходной результат XSLT-преобразования.
...
Рейтинг: 0 / 0
xml + xslt = html, кодировка сбивается
    #33720092
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexVerПопробовать
<xsl:output method="html" encoding="windows-1251" />
так уже пробовал - в html файле все равно utf-16
а вот так:

если не поможет это, то можно "добить" так:
<xsl:output method="html" media-type="text/html; charset=windows-1251" />

помогло!
большое спасибо :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xml + xslt = html, кодировка сбивается
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]