Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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 JAXB编组后的NUL字符_Java_Xml_Character Encoding_Jaxb - Fatal编程技术网

Java JAXB编组后的NUL字符

Java JAXB编组后的NUL字符,java,xml,character-encoding,jaxb,Java,Xml,Character Encoding,Jaxb,我已经使用JAXB库读写XML文件有一段时间了,没有任何问题。然而,我最近遇到了一些问题,在编组过程中NUL字符被写入XML文件 奇怪的是,这个问题只有在土耳其版本的Windows上测试时才会出现。我无法在英语或日语平台上复制它们,这是我唯一可以访问atm分发版的平台。你知道这是什么原因吗?下面是示例代码 编组类别: public class InputsMarshaller { public static Inputs unmarshal(String filePath) {

我已经使用JAXB库读写XML文件有一段时间了,没有任何问题。然而,我最近遇到了一些问题,在编组过程中NUL字符被写入XML文件

奇怪的是,这个问题只有在土耳其版本的Windows上测试时才会出现。我无法在英语或日语平台上复制它们,这是我唯一可以访问atm分发版的平台。你知道这是什么原因吗?下面是示例代码

编组类别:

public class InputsMarshaller {

    public static Inputs unmarshal(String filePath) {
        Inputs inputs = null;
        try {
            JAXBContext context = JAXBContext.newInstance(Inputs.class); //1
            Unmarshaller unmarshaller = context.createUnmarshaller();    
            inputs = (Inputs) unmarshaller.unmarshal(new File(filePath));
        } catch (JAXBException ex) {
            ex.printStackTrace(System.out);
        }    
        return inputs;
    }

    public static void marshal(Inputs inputs, String filePath) {
        try {
            JAXBContext context = JAXBContext.newInstance(Inputs.class); //1
            Marshaller marshaller = context.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
            marshaller.marshal(inputs, new FileWriter(new File(filePath)));   
        } catch (IOException | JAXBException ex) {
            ex.printStackTrace(System.out);
        }        
    }
}
输入类:

@XmlRootElement(name = "inputs")
public class Inputs {

    private ArrayList<String> values;
private String name, unit;

    @XmlElement(name="values")
    public List<String> getValues() {
        if(values == null) {
            values = new ArrayList<>();
        }
        return values;
    }

@XmlAttribute(name = "name")
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

@XmlAttribute(name = "unit")
    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getUnit() {
        return unit;
    }
}

你的任何代码都没有问题。输出是什么样子的?