有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java UTF8在live server中不工作

我是docx4j的新手。我正在创造新的。使用docx4j的docx文件。将项目从eclipse部署到tomcat服务器时,我的代码工作得非常好。但它不能在实时服务器上工作。下面是我的代码:

String html = "<html><head><meta charset=\"UTF-8\"><title></title>"
                + "</head><body>"
                + "<div><div style='width:100%;display:inline; text-align:right;'>मितिः &nbsp; "
                +new Date()+"</div><div class=\"block p-top-2\" style='display:block; float:left;'>"
                + "च.नं.  &nbsp;"
                + "<span style=\"display: inline !important;\">"+10088+" - "+73 + "/" + 74
                + "</span></div></div></body></html>";
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();

AlternativeFormatInputPart afiPart = new AlternativeFormatInputPart(new PartName("/hw.html"));
afiPart.setBinaryData(html.getBytes());
afiPart.setContentType(new ContentType("text/html"));
Relationship altChunkRel = wordMLPackage.getMainDocumentPart().addTargetPart(afiPart);
afiPart.registerInContentTypeManager(); 

CTAltChunk ac = Context.getWmlObjectFactory().createCTAltChunk();
ac.setId(altChunkRel.getId() );
wordMLPackage.getMainDocumentPart().addObject(ac);           

wordMLPackage.getContentTypeManager().addDefaultContentType("html", "text/html;charset=UTF-8");
wordMLPackage.save(new File("created_doc.docx"));

下面是我的本地网站的屏幕截图: Expected format

下面是我的实时服务器的屏幕截图 UTF-8 not supported format

我正在使用Tomcat和Spring框架。使用maven创建并部署在windows server 2012 r2上的项目


共 (1) 个答案

  1. # 1 楼答案

    我怀疑这可能就是问题所在:

    afiPart.setBinaryData(html.getBytes());
    

    这将使用平台默认编码——这在本地机器和服务器之间可能明显不同。我强烈建议您总是指定编码。如果需要UTF-8,请使用:

    afiPart.setBinaryData(html.getBytes(StandardCharsets.UTF_8));