Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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 在分析YML到POJO时,获取异常无效的UTF-8起始字节0x80(在字符158处,字节-1)_Java_Utf 8_Yaml_Snakeyaml_Jackson Dataformat Yaml - Fatal编程技术网

Java 在分析YML到POJO时,获取异常无效的UTF-8起始字节0x80(在字符158处,字节-1)

Java 在分析YML到POJO时,获取异常无效的UTF-8起始字节0x80(在字符158处,字节-1),java,utf-8,yaml,snakeyaml,jackson-dataformat-yaml,Java,Utf 8,Yaml,Snakeyaml,Jackson Dataformat Yaml,我正在尝试将yml文件解析为java对象,同时解析yml文件,对象映射器将出现以下异常 主线程中的异常 com.fasterxml.jackson.dataformat.yaml.JacksonYAMLParseException: java.io.CharConversionException:位于的UTF-8起始字节0x80无效 字符158,字节-1位于[源:文件;行:1,列:1] com.fasterxml.jackson.dataformat.yaml.YAMLParser.nextTo

我正在尝试将yml文件解析为java对象,同时解析yml文件,对象映射器将出现以下异常

主线程中的异常 com.fasterxml.jackson.dataformat.yaml.JacksonYAMLParseException: java.io.CharConversionException:位于的UTF-8起始字节0x80无效 字符158,字节-1位于[源:文件;行:1,列:1] com.fasterxml.jackson.dataformat.yaml.YAMLParser.nextTokenYAMLParser.java:361 在 com.fasterxml.jackson.databind.ObjectMapper.\u initForReadingObjectMapper.java:4620 在 com.fasterxml.jackson.databind.ObjectMapper.\u readMapAndCloseObjectMapper.java:4469 在 com.fasterxml.jackson.databind.ObjectMapper.readValueObjectMapper.java:3299

我的java代码

ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
XmlConverterProp prop = objectMapper.readValue(configFile, XmlConverterProp.class);
yml文件

dateFormat: "MM/dd/yyyy=Billing_Date"
lineItemRowNodeName: row
lineItemsNodeName: Mode_Items
removeValueChars: "Net_Amount=$,Unit_Price=Rs.,Item_Amount=€,Gross_Amount=$"
requiredHeaderTags: "cc_BatchDetails,Invoice_Number,Invoice_Date,PO_Number,Document_Type,Vendor_Name,Tax_Amount,Net_Amount,Invoice_Amount,Currency,Gross_Amount,cc_ProfileName,Remit_To_Address_1"
requiredLineTags: "Item_Code,Item_Description,Quantity,Unit_Price,Item_Amount"

有问题的字符是欧元符号。您的输入未编码为UTF-8,因为欧元符号编码为0x80。这对应于拉丁语-9或


YAML要求输入为UTF编码8、16或32之一,最常见的是UTF-8。您需要将YAML文件编码为UTF-8或其他格式,以便正确加载。所有代码编辑器都提供了这样做的方法,大多数编辑器在底部状态栏中都有该选项。

Hex 80可能是欧元符号。这就是它在一些非utf8编码中的含义。