Comment définir l'écrivain de réponse dans Xpages à UTF-8?
-
13-11-2019 - |
Question
J'ai un porblem et j'espère que quelqu'un pourrait m'aider.
Je lis quelques valeurs d'une vue Notes en utilisant le code suivant
...
ViewEntryCollection vec = MyView.getAllEntries();
ViewEntry viewentry = vec.getFirstEntry();
while (viewentry != null) {
row = new Vector<String>();
Vector rowvec = viewentry.getColumnValues();
...
Puis je construis une table HTML avec les valeurs Cela fonctionne bien mon problème est la réponse à un xpage
public void getHTMLStream(DominoFacesContext FacesContext, String HTMLstr) {
ExternalContext con = FacesContext.getExternalContext();
XspHttpServletResponse response = (XspHttpServletResponse)
con.getResponse();
byte[] content;
try {
ServletOutputStream writer = response.getOutputStream();
// setting response headers for browser
response.setContentType("application/html");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Content-Disposition", "attachment; filename=\"myhtml.html\"");
content = HTMLstr.getBytes();
writer.write(content);
writer.flush();
writer.close();
FacesContext.responseComplete();
} catch (Exception e) {
e.printStackTrace();
}
}
Si dans les HTMSTR sont des UMLAUTS allemandes telles que Ä, Ö, Ü, le "écrivain" les convertit à des signes étranges.Quelqu'un a-t-il une idée de la façon de résoudre ce problème?
chrétien
La solution
Vous pouvez définir Charset dans le contenu du contenu par l'instruction suivante
réponse.setContentType ("application / html; charset= utf-8");
Autres conseils
Une autre option serait de simplement utiliser la méthode correcte
response.setCharacterEncoding()
Essayez ceci:
content = java.net.URLEncoder.encode(content,"UTF-8");
Si quiconque en a encore besoin.L'imprimeur utilise un codage à partir de propriétés XSP, alors assurez-vous simplement que vous avez XSP.HTML.PAGE.CODING= UTF-8