消息"3字节UTF-8序列的无效字节2"是什么意思?

ave*_*net 15 encoding utf-8 orbeon

我在Orbeon Forms中更改了一个文件,下次加载页面时,我收到一条错误消息,指出3字节UTF-8序列的字节2无效.我怎么解决这个问题?

ave*_*net 14

当Orbeon Forms读取XML文件并期望它使用UTF-8编码时会发生这种情况,但不知何故该文件没有在UTF-8中正确编码.要解决此问题,请确保:

  1. 您在文件开头有一个XML声明,说文件是UTF-8:

    <?xml version="1.0" encoding="UTF-8" ?>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您的编辑器具有XML感知功能,因此它可以解析XML声明,从而使用UTF-8编码.如果您的编辑器不支持XML,并且您不想使用其他编辑器,请查找允许您指定编辑器必须使用UTF-8的选项或首选项.


ros*_*sum 6

三字节UTF-8序列如下所示:

1110xxxx 10xxxxxx 10xxxxxx
Run Code Online (Sandbox Code Playgroud)

您的错误消息可能意味着三个字节的第一个字节错误地标记了三字节序列的开头,或者第二个字节格式错误.

正如@avernet所说,您需要确保系统中的所有元素都在生成并期望UTF-8.


小智 6

启动程序时,请使用以下 Java 命令行参数:

-Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)

例如,

java -Dfile.encoding=UTF-8 -jar foo.jar
Run Code Online (Sandbox Code Playgroud)