【发布时间】:2014-08-01 19:15:33
【问题描述】:
我知道“XML 解析错误:格式不正确”的广义含义。不知何故,文本不符合 xml 规范。这通常意味着存在不匹配的标签或者可能是错误的标题。
但是,也有格式不正确的文档的字符编码类型。我得到的结果似乎与我的预期相反。
当我从 windows 7 机器上的浏览器对 java rest 服务进行休息调用时,我会返回一个 xml 文档,其中包含以下文字,如下所示:
<foo>RÜCK</foo>
我知道这就是我得到的,因为我使用 curl 来保存结果,而这正是文档中的内容。但是,当在 firefox、ie8 或 chrome 中查看时,文本的“Ü”部分实际上显示为一个 U,其上方有 2 个点。而且,没有一个浏览器会抱怨文档格式不正确。
然后我调用相同的 rest 服务,除了我从我的 windows 7 机器到运行 tomcat 的 linux 机器。我得到的是:
<foo>RÜCK</foo>
这就是我在使用 curl 下载结果时看到的。但是firefox和ie都抱怨xml文档格式不正确!
我知道,当我复制粘贴“Ü”时,由于文档编码或其他原因,它以某种方式从单个字符变为两个字符。但是,这是下一个令人困惑的事情。
当我更新数据库中的内容以将“RÜCK”存储为复制粘贴值时,当从 Windows 上的 tomcat 发送时它显示为“RÜCK”,但是当从 linux 上的 tomcat 发送时,它给出了一个格式不正确的错误!为什么?
谁能解释究竟是什么导致 windows 和 linux 系统以不同的方式显示相同的数据,以及为什么它不是从 linux tomcat 服务器形成的,但它是从 windows 7 tomcat 服务器形成的?
【问题讨论】:
标签: java xml tomcat character-encoding