我必须以书面形式在Java UTF-8的XML文件中的问题。 问题:我有与具有它的间隔号(middot)(·)的文件名的文件。 当我尝试写一个XML标签内的文件名,使用Java代码,我得到一些垃圾数量一样在文件名,而不是·
OutputStreamWriter OSW =新OutputStreamWriter(file_output_stream, “UTF8”);
以上是java代码我用来写XMLFILE。 谁能告诉我,为什么理解和排序的问题? 提前致谢
我必须以书面形式在Java UTF-8的XML文件中的问题。 问题:我有与具有它的间隔号(middot)(·)的文件名的文件。 当我尝试写一个XML标签内的文件名,使用Java代码,我得到一些垃圾数量一样在文件名,而不是·
OutputStreamWriter OSW =新OutputStreamWriter(file_output_stream, “UTF8”);
以上是java代码我用来写XMLFILE。 谁能告诉我,为什么理解和排序的问题? 提前致谢
字符是ASCII 183(十进制),所以你需要逃脱字符·
。 这里是一个演示:如果我输入"·"
这个答案,我得到“·”
该浏览器打印你的性格,因为这个网页是XML。
有实用的方法,可以为你做这个,比如apache的公地郎库的StringEscapeUtils.escapeXml()
方法,该方法将正确,安全地逃离整个输入。
Java源代码都默认UTF-16。 如果你的性格是不是在里面,然后用逃生:
String a = "\u00b7";
或者告诉你的编译器使用UTF-8和简单地将其写入代码原样。
一般是使用UTF-8处处是个好主意。
编辑器必须知道源是UTF-8。 您可以使用免费的程序员编辑JEDIT它可以处理许多编码。
javac编译器必须知道Java源代码是UTF-8。 在Java中,你可以使用@OndraŽižka的解决方案。
这使得在你的IDE两种设置。
不要试图手动创建XML。 使用库为目的。 你只是刮伤的特殊情况下,这将打破一个手工制作的解决方案堆的表面。
一种方法,使用核心Java类,是创建一个DOM,然后序列化使用无操作的XSL转换写入到StreamResult
。 (如果您的文档比较大,你可以做,通过驱动SAX事件处理类似的东西。)
有很多第三方库,这将有助于你做同样的事情很容易。