java - 编码到 System.out 时的 JAXB 编码问题

标签 java encoding utf-8 jaxb

我正在尝试打印以控制台我的 java bean,从 HTTP 响应中解码。我有编码问题。 以下是部分回复:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
   <ErrorMsg>Ä°ÅŸleminizi ...</ErrorMsg>
</Response>

我的方法是:

public void printToConsole() {
    try {
        JAXBContext context = JAXBContext.newInstance(Response.class);
        Marshaller marshaller = context.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
                Boolean.TRUE);
        marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
        marshaller.marshal(this, System.out);
    } catch (JAXBException e) {
        e.printStackTrace();
    }
}

通过使用调试器查看 bean 值,它们在调试器的弹出窗口中正确显示 (Eclipse IDE)

谢谢

最佳答案

问题是使用默认的控制台设置,将无法正确打印 UTF-8 字符。确保您用于显示输出的控制台也以 UTF-8 编码。例如,在 Eclipse 中,您需要转到

Run Configuration > Common > Encoding

并选择UTF-8或相关编码。

enter image description here

关于java - 编码到 System.out 时的 JAXB 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111478/

相关文章:

swift - 如何使用 NSURLComponents 将 + 编码为 %2B

java - 如何使用 GinFactoryModuleBuilder 从 Google Gin 获取扩展子类?

java - 如何利用 WSDL 生成的 Web 服务客户端?

java - "kill -QUIT process_id"是如何工作的?

sql - 在更新到 SQL 时出现问号

java - 如何在 Java 中从一个字符集解码文本并将其转换为另一个字符集?

java - ActionBarActivity getSupportActionBar().hide() 抛出 NullPointerException

git clone 采用 utf8 而不是 us-ascii

mysql - 将印度语言数据从 SQL Server 迁移到 MySQL

Golang - 从字符串中删除所有 Unicode 换行符