如何写在Java中的XML文件中的特殊字符(间隔号)?(how to write special c

2019-09-19 02:40发布

我必须以书面形式在Java UTF-8的XML文件中的问题。 问题:我有与具有它的间隔号(middot)(·)的文件名的文件。 当我尝试写一个XML标签内的文件名,使用Java代码,我得到一些垃圾数量一样在文件名,而不是·

OutputStreamWriter OSW =新OutputStreamWriter(file_output_stream, “UTF8”);

以上是java代码我用来写XMLFILE。 谁能告诉我,为什么理解和排序的问题? 提前致谢

Answer 1:

字符是ASCII 183(十进制),所以你需要逃脱字符· 。 这里是一个演示:如果我输入"·" 这个答案,我得到“·”
该浏览器打印你的性格,因为这个网页是XML。

有实用的方法,可以为你做这个,比如apache的公地郎库的StringEscapeUtils.escapeXml()方法,该方法将正确,安全地逃离整个输入。



Answer 2:

Java源代码都默认UTF-16。 如果你的性格是不是在里面,然后用逃生:

String a = "\u00b7";

或者告诉你的编译器使用UTF-8和简单地将其写入代码原样。



Answer 3:

一般是使用UTF-8处处是个好主意。

编辑器必须知道源是UTF-8。 您可以使用免费的程序员编辑JEDIT它可以处理许多编码。

javac编译器必须知道Java源代码是UTF-8。 在Java中,你可以使用@OndraŽižka的解决方案。

这使得在你的IDE两种设置。



Answer 4:

不要试图手动创建XML。 使用库为目的。 你只是刮伤的特殊情况下,这将打破一个手工制作的解决方案堆的表面。

一种方法,使用核心Java类,是创建一个DOM,然后序列化使用无操作的XSL转换写入到StreamResult 。 (如果您的文档比较大,你可以做,通过驱动SAX事件处理类似的东西。)

有很多第三方库,这将有助于你做同样的事情很容易。



文章来源: how to write special characters(interpunct) in a xml file in java?
标签: java xml utf-8