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

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top