HTML-теги конвертируются

У меня есть следующий фрагмент кода для вывода из данных XML, которые хранятся в таблице базы данных

ServletOutputStream os = response.getOutputStream();
String contentDisposition = "attachment;filename=Test.HTML";
response.setHeader("Content-Disposition",contentDisposition);
response.setContentType("text/html");

XMLNode xmlNode = (XMLNode)am.invokeMethod("getDataXML");
ByteArrayOutputStream outputStream = 
new ByteArrayOutputStream();
xmlNode.print(outputStream);

ByteArrayInputStream inputStream = 
new ByteArrayInputStream(outputStream.toByteArray());

ByteArrayOutputStream pdfFile = new ByteArrayOutputStream();

TemplateHelper.processTemplate(((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getAppsContext(), 
   "INV", 
   "MyTemplate", 
   ((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getUserLocale().getLanguage(), 
   ((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getUserLocale().getCountry(), 
   inputStream, 
   TemplateHelper.OUTPUT_TYPE_HTML, 
   null, pdfFile);


byte[] b = pdfFile.toByteArray();
response.setContentLength(b.length);
os.write(b, 0, b.length);
os.flush();
os.close();
pdfFile.flush();
pdfFile.close();


public XMLNode getDataXML() {
OAViewObject vo = (OAViewObject)findViewObject("DataVO");
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
XMLNode xmlNode = 
(XMLNode)vo.writeXML(4, XMLInterface.XML_OPT_ALL_ROWS);
return xmlNode;

}

У меня есть HTML-теги, которые хранятся в таблице как

<STRONG>this</STRONG> is only a test.

Однако вышесказанное превращается в

 &lt;STRONG&gt;this&lt;/STRONG&gt;is only a test.

Как сохранить исходные теги HTML при выполнении кода или как преобразовать его обратно в исходный без использования сторонних библиотек, поскольку у нас есть ограничение на использование сторонних библиотек на сервере.

1 ответ

Взгляните на это для получения дополнительной информации

Кодировщик символов HTML преобразует все применимые символы в соответствующие им объекты HTML. Некоторые символы имеют особое значение в HTML и должны быть преобразованы в их правильные объекты HTML, чтобы сохранить их значения. Например, невозможно использовать символ<, поскольку он используется в синтаксисе HTML для создания и закрытия тегов. Он должен быть преобразован в соответствующий ему элемент

и тогда это может помочь вам:

использовать Apache Commons StringEscapeUtils.unescapeHtml4() за это:

Unescapes строка, содержащая сущность, экранируется в строку, содержащую фактические символы Unicode, соответствующие escape-символам. Поддерживает сущности HTML 4.0.

редактировать

кажется, что у самой Java есть этот метод

URLDecoder.decode(String stringToDecode)

и это

URLDecoder.decode(String stringToDecode, String charset);

Надеюсь, что это работает для вас

Другие вопросы по тегам