1

我有 utf-8 字符集中的 GWT、ext-GWT web-project。我还在 html 文件中添加了 utf-8 字符集。

此外,我需要创建一些 pdf 报告。所以我编写了一个特殊的 servlet,它采用模板 html 文件,添加一些信息(使用本地语言)并使用wkhtmltopdf将新生成的 html 文件转换为 pdf 文件。

现在,当我尝试将生成的 html 文件(也有<meta charset="UTF-8">)转换为 pdf 文件时,我从客户端代码发送到 servlet 的本地语言信息(一些字符串)在结果 pdf 文件中替换为“? " 黑色菱形中的符号。

为了解决这个问题,我向 Process Builder 添加了一些参数,例如"--encoding" "utf-8"

private void ConvertHTMLtoPDF(String sConvertationProgramm, String sHTML, String sPDF)
{
    try {
        ProcessBuilder pb = new ProcessBuilder(sConvertationProgramm, "--encoding", "utf-8", sHTML, sPDF);
        Process process = pb.start();
        process.waitFor();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

但都一样,根本没有效果。同时我只有在tomcat服务器上有这些符号,在码头没有同样的麻烦。


那么,问题出在哪里,向服务器发送本地信息(导致模板 html 文件中的其他本地语言信息正确显示)或在服务器端写入/转换时?

有人有什么建议吗?谢谢

4

1 回答 1

1

我发现了我的问题。我必须向大家道歉,因为我的问题在于编写新生成的 html,所以不要使用这个:

BufferedReader br = new BufferedReader(new InputStreamReader(fis));
BufferedWriter bw = new BufferedWriter(new FileWriter(fHTML));

我必须使用这个:

BufferedReader br = new BufferedReader(new InputStreamReader(fis,"UTF8"));
BufferedWriter bw  = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fHTML), "UTF-8"));

因此,问题在于读取/写入 html 文件。

于 2013-06-12T05:11:24.397 回答