首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Marshaller“输入编码”

Java Marshaller“输入编码”
EN

Stack Overflow用户
提问于 2013-09-16 07:36:04
回答 2查看 452关注 0票数 1

我确实有一个对象层次结构,我希望使用“导入javax.xml.bind.Marshaller”将其从Java转换为xml。我的java类文件被封装在"Cp1252“中,我无法更改它。

将属性设置为"München“并将其转换为xml后,结果是M?nchen,因此编码错误:-)

在创建我的java类文件时,似乎一切正常,因为getCity期间的值看起来很好。在由XMLDirectMapping.setAttributeValueInObject调用的setCity-方法中,优先级值已经中断:"Mnchen“。

我尝试了几个不同的值来设置属性Marshaller.JAXB_ENCODING,但是由于这是输出编码,所以我不能使用它。

我的假设是,错误必须与我的vm的默认编码或库的编码有关。但既然我不知道,如果你们中有人以前有过这个问题,那就太好了。

如果你需要更多的信息来解决这个问题,请告诉我。如果仅仅因为这样的问题而不花半天或更多的时间,那就太好了。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-16 19:56:33

备注:,我是EclipseLink JAXB (MOXy)的负责人,也是JAXB (JSR-22)专家组的成员。

在创建我的java类文件时,似乎一切正常,因为getCity期间的值看起来很好。在由XMLDirectMapping.setAttributeValueInObject调用的setCity-方法中,优先级值已经中断:"Mnchen“。

基于这一声明,我可以看出您正在使用JAXB (JSR-222)的EclipseLink MOXy实现。

您在哪里看到值被错误地编码?有时,一个值似乎在编辑器/调试器中被错误地编码,但实际上它是正确的。如果将结果编组到一个文件中,您是否得到了正确的结果?

票数 1
EN

Stack Overflow用户

发布于 2013-09-16 07:47:28

如果没有代码,就很难确定一个可能的小错误,即使您想要正确地实现它。

首先,我建议您使用UTF-8作为编码,因为它是更标准的,如果我没有弄错的话,更多的跨平台,但这是默认的。

其次,我将检查生成的文件是否确实包含在其xml标记中,这些标记是用该编码编码的。

第三,可以使用系统属性jaxb.encoding更改编码。

所以用-Djaxb.encoding=Cp1252而不是Marshaller.JAXB_ENCODING来启动你的应用吧!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18822611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档