带有特殊字符的xml,编码为u​​tf-8

时间:2010-05-18 17:39:30

标签: java xml encoding utf-8

我有几个简单的问题,因为我在阅读所有不同的答案时感到困惑。

1)如果我有一个带有prolog:<?xml version="1.0" encoding="utf-8" ?>的xml,我将用Java解组它(例如:JaXB)。我想,我不能将罗兰(http://www.fileformat.info/info/unicode/char/2628/index.htm)交叉放在里面,但我可以把“\ u2628”,对吗?

2)我也听说过UTF-8不包含它,但Unicode中的任何东西都可以用UTF-8(或UTF-16)编码保存,这里有一个例子:

UTF-8(十六进制)0xE2 0x98 0xA8(e298a8)

我的推理是否正确?我可以使用此表单并使用utf-8编码将其放入xml中吗?

3 个答案:

答案 0 :(得分:2)

如果你的prolog为xml指定了utf-8编码:

<?xml version="1.0" encoding="utf-8" ?>

然后你可以直接使用utf-8字符,或者你可以将它们编码为&amp;#9768;

答案 1 :(得分:1)

绝对没问题 - UTF-8可以编码任何Unicode字符。

XML对控制字符(U + 0000到U + 001F)有一些限制,但U + 2628应该没问题。

(就我个人而言,我更愿意去unicode.org获取明确的代码图表,但肯定会出现U + 2628 here。)

您不必担心UTF-8方面的问题 - 您应该能够直接将字符放入数据中,并让JAXB进行编码。

答案 2 :(得分:1)

另外1个......

仅指定prolog中的编码是不够的。你需要确保使用正确的编码序列化内容。