当前位置: 首页 > 知识库问答 >
问题:

XML UTF-8输出中的JDom2编码问题

贺海
2023-03-14

我尝试使用jdom2更新现有XML文件中的一些属性值。创建xml文件时,我遇到了utf8编码问题。

属性值为“1学生名词”。

但我在输出中看到的值是:

1	student	Noun

我编写的代码如下所示:

SAXBuilder builder = new SAXBuilder();
            Document document = document = builder.build(filePath);

            Element root = document.getRootElement();

            for(Element sentenceElement : root.getChildren("sentence")){

                String transcriptionText = "";

                 for(Element transcriptionElement : sentenceElement.getChildren("transcription")){

                     for(Element wordElement : transcriptionElement.getChildren("word")){
                            transcriptionText += " "+wordElement.getAttributeValue("text");
                     } 

                     transcriptionParser = ParserUtil.getResponse(transcriptionText);
                     transcriptionElement.getAttribute("text").setValue(transcriptionText);
                     transcriptionElement.getAttribute("parser").setValue(transcriptionParser);
                 }

                 for(Element translationElement : sentenceElement.getChildren("translation")){

                        translationParser = getResponse(translationElement.getAttributeValue("text"));
                        translationElement.getAttribute("parser").setValue(translationParser);

                 }
            }

            Format format = Format.getPrettyFormat();

            XMLOutputter xmlOutput = new XMLOutputter(format);


            /*try (OutputStream out = new FileOutputStream(filePath)) {
               xmlOutput.output(document, out);
              }catch(Exception e){
                 e.printStackTrace();
              }
            }*/

            xmlOutput.output(document, Files.newBufferedWriter(Paths.get(filePath),StandardCharsets.UTF_8));

我已经使用了这两个选项:

xmlOutput.output(document, Files.newBufferedWriter(Paths.get(filePath),StandardCharsets.UTF_8));

    try (OutputStream out = new FileOutputStream(filePath)) {
         xmlOutput.output(document, out);
   }catch(Exception e){
         e.printStackTrace();
   }

但这些问题都没有得到解决。如何解决这个问题?

共有1个答案

皇甫卓君
2023-03-14

字符串“1个学生名词”显然在单词之间包含制表符。

因此,如果XML输出包含1

 类似资料:
  • 我需要导出javascript数组到CSV文件和下载。我这么做了,但是'ó,ü,ö,ó,ş'这些字符在CSV文件中看起来像'\\\\\\\\\\\'。我已经尝试了这个网站上推荐的许多解决方案,但对我不起作用。 我添加了我的代码片段,有人能解决这个问题吗?

  • 我想知道是否有人能帮忙,我很难将UTF-8字符发布到SagePay。数据库是MySQL,带有数据库字符集utf8和数据库排序规则utf8_general_ci。数据库连接字符串使用useUnicode=true 所有发布到数据库的数据都存储为UTF-8,所有查询的数据都显示为UTF-8,但当字符串编码如下时: 然后发到SagePay,他们会收到一个来自国际字符所在位置的乱码字符串。如果字符串中不包

  • 我在将文本从UTF-8编码转换为UTF-8编码时遇到问题。这里有字节数组, 我正在将其转换为UTF-8字符串并返回字节数组, 据我所知,这是一个3字节的数组。正当但这是我得到的。 这是什么原因?据我所知,在UTF-8 Specials中,2391189组合被称为替换字符。 这也是一个更大问题的一部分。

  • 问题内容: 使用UTF-8编码创建字符串时存在不一致的地方。 运行此代码: 在Java 1.8.0_20(及更早版本)上,我们得到结果 在Java 1.7和1.6上,我们得到正确的结果: 您遇到此错误了吗?有没有解决方法? 对于Shift_JIS,JIS_X0212-1990,x-IBM300,x-IBM834,x-IBM942,x-IBM942C,x-JIS0208来说,这种不一致也很明显,但显

  • 默认情况下,当您将命令的输出重定向到文件或通过管道将其导入PowerShell中的其他内容时,编码是UTF-16,这是不有用的。我想把它改成UTF-8。 可以通过将语法替换为来逐个实现,但每次都要重复这样做会很尴尬。 在PowerShell中设置东西的持久方法是将它们放在中;我已经验证了这个文件确实是在启动时执行的。 曾经说过,可以使用设置输出编码,但我尝试过,没有效果。 https://blog

  • 我很难使用XSLT(使用氧气运行转换)从UTF-8编码的XML源生成ISO-8859-1编码的文本输出。 例如,当源包含破折号时,oxyow会抛出一个错误,“输出字符在此编码中不可用(十进制8211)”。 有简单明了的解决办法吗? 谢谢你的任何建议。