Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java中的字符串转换为HTML文件时会出现其他字符?_Java_Html_Tags_Special Characters - Fatal编程技术网

为什么Java中的字符串转换为HTML文件时会出现其他字符?

为什么Java中的字符串转换为HTML文件时会出现其他字符?,java,html,tags,special-characters,Java,Html,Tags,Special Characters,我看过“类似”的问题,但没有找到我的答案。如果已经存在,请给我指一个 问题:将String/StringBuilder保存为HTML格式时,会在页面开头添加额外的字符,我不知道为什么。例如: ¬ítX<!DOCTYPE html> <html> 你还没有发布serializeDoc,所以我们真的不能说。但我要告诉你的是:你真的需要用文本文件跟踪你的字符集。以ascii、拉丁语-1、utf-8、utf-16等格式输出相同的文本将得到不同的文件大小和不同的结果。确保一致性的

我看过“类似”的问题,但没有找到我的答案。如果已经存在,请给我指一个

问题:将String/StringBuilder保存为HTML格式时,会在页面开头添加额外的字符,我不知道为什么。例如:

’tX<!DOCTYPE html>
<html>

你还没有发布
serializeDoc
,所以我们真的不能说。但我要告诉你的是:你真的需要用文本文件跟踪你的字符集。以ascii、拉丁语-1、utf-8、utf-16等格式输出相同的文本将得到不同的文件大小和不同的结果。确保一致性的最佳方法是使用FileWriter和FileReader,您可以在其中声明字符集类型

--更新--


哎呀,哎呀,哎呀!您不希望在此处使用对象序列化。这将直接将java对象保存到文件中,使文件更难读取和手动调整。将字节写入FileOutputStream会更好,但正如我所说的,最好的解决方案是FileWriter,这样您就可以指定要保存的字符集。

什么是
serializeDoc
?ObjectOutputStream执行Java序列化,这与写入文本不同。改为使用。添加serializeDoc()以实现可见性。它实际上只是使用常规序列化来保存文档,而不是添加任何字符。此外,特殊字符仅出现在第一行中。我会试试FileWriter,看看它是否有什么不同
public void saveToHTML(){
    String fileName = "";
    if (docName != null){
        fileName += docName;
    } else {
        fileName += stdFileName;
    }
    fileName += "HTML.html";
    String tempText = new String("<!DOCTYPE html>\n<html>\n\t<body>");
    int tabCount = 3;                                                                                       
    for (int oneSec = 0; oneSec < allSections.size(); oneSec++){
        for (int onePar = 0; onePar < allSections.get(oneSec).getCountParagraphs(); onePar++){
            tempText += (convertParToHTML(allSections.get(oneSec).getParagraph(onePar), 
                                             tabCount));        
        }
    }
    tempText += ("\n\t</body>\n</html>");
    serializeDoc(fileName, tempText.toString());
}
/**
 * Helper method to serialize files
 * 
 * @param fileName name of the file to be saved with
 * @param object object to be saved in the file
 * @throws IOException 
 */
private void serializeDoc(String fileName, Object object){
    try {
        FileOutputStream file = new FileOutputStream(fileName);
        ObjectOutputStream out = new ObjectOutputStream(file);
        out.writeObject(object);
        out.close();
    } catch (IOException e){
      System.out.println("The file couldn't be created");
    }
}