如何将XPage中的响应编写器设置为UTF-8?

问题描述 投票:0回答:4

我有一个问题,我希望有人可以帮助我。

我正在使用以下代码从Notes视图中读取一些值

...
ViewEntryCollection vec = MyView.getAllEntries();
ViewEntry viewentry = vec.getFirstEntry();
while (viewentry != null) {
     row = new Vector<String>();
 Vector rowvec = viewentry.getColumnValues();
...

然后我构建一个HTML表格,其值很好,我的问题是对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();
    }
}

如果在HTMLstr中是像ä,Ö,Ü这样的德国元音,那么“作家”会将它们转换成一些标志符号。有谁知道如何解决这个问题?

基督教

xpages
4个回答
2
投票

您可以通过以下语句在contenttype中设置charset

response.setContentType( “应用/ HTML;字符集= UTF-8”);


1
投票

另一种选择是使用正确的方法

response.setCharacterEncoding()

0
投票

试试这个:

content = java.net.URLEncoder.encode(content,"UTF-8");

0
投票

万一有人还需要这个。 PrintWriter使用来自xsp属性的编码,所以只需确保你有xsp.html.page.encoding = utf-8

© www.soinside.com 2019 - 2024. All rights reserved.