我们在 heroku 上部署了一个基于 maven--jetty 的 Java 应用程序。
在本地,当我这样做时:
System.out.println("Default Charset = "+ Charset.defaultCharset());
String s = "Resumé of Schrödinger";
System.out.println("s = "+ s);`
我看到(如预期):
Default Charset = UTF-8
s = Resumé of Schrödinger
但是,当我将应用程序推送到 heroku 并检查日志时,我看到:
Default Charset = US-ASCII
s = Resum?? of Schr??dinger
实际上,因此我面临更多问题,因为我们必须解码具有 UTF-8 编码字符的 Base-64 编码文本。
我什至尝试了以下没有用的方法:
SAXBuilder builder = new SAXBuilder();
InputStream iStream = new ByteArrayInputStream(xmlAsString.getBytes("UTF-8"));
Reader reader = new InputStreamReader(iStream, "UTF-8");
InputSource is = new InputSource(reader);
is.setEncoding("UTF-8");
后来,当我做的时候,org.apache.commons.codec.binary.Base64.decodeBase64(byte [])
我什至在做stringObject.getBytes("UTF-8")
但是,我仍然看不到 e-acute(é)、umlaut(ö) 等字符。
有没有办法在 Heroku 上解决这个问题?
pom.xml中的jdk版本是1.6
这是 OpenJDK 1.7 和 Heroku 下的虚拟机的怪癖吗?
提前致谢。