我试图用Java读取UTF-16 xml文件 . 该文件是用C#编写的 .
这是java代码:
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XMLReadTest
{
public static void main(String[] s)
{
try
{
File fXmlFile = new File("C:\\my_file.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("row");
for (int temp = 0; temp < nList.getLength(); temp++)
{
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE)
{
Element eElement = (Element) nNode;
System.out.println("FILE_NAME: " + eElement.getElementsByTagName("FILE_NAME").item(0).getTextContent());
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
这是xml文件:
Выписка_Винтовые насосы.pdf
GENERAL
在eclipse和Run / Debug设置窗口中运行此代码时,在名为“Common”的最后一个选项卡中,所选编码是Default - Inherited(Cp1253),我得到的输出是错误的:
文件名: ???????_???????? ?????? . PDF
当同一选项卡中的selecdted编码为UTF-8时,输出正常:
FILE_NAME:Выписка_Винтовыенасосы.pdf
我究竟做错了什么?
如何在eclipse项目设置中使用默认编码(cp 1253)获得正确的输出?
此代码在服务器中运行,我不想更改虚拟机的默认编码 .
我用Java 7和Java 8测试了这段代码