[英]Google App Engine encoding
我正在尝试记录一些俄语文本:
LOG.info("тестирование русского");
但我得到问题符号(从网上查看):
[app-id / app-version]:15:18:44,753 INFO [class] - ???????????? ????????
使用UTF-8编码保存的Java文件。 所有设置均为默认值。
即使我用俄语字符读取UTF-8中的文件并尝试从中记录某些内容 - 编码也是错误的。
我对希伯来文有类似的问题。 我发现它是由默认编码引起的。
要检查默认编码,我使用了以下代码:
OutputStreamWriter out = new OutputStreamWriter(new ByteArrayOutputStream());
String encoding = out.getEncoding();
在我的计算机上,编码为“UTF8”。 在GAE服务器上,它是“ASCII”。
我通过替换代码中的所有文件读取器来解决问题:
new InputStreamReader(new FileInputStream(file), "UTF8"));
这告诉Java忽略默认编码,并将所有输入文件打开为UTF8。
试试这个。 显然GAE尝试自动检测编码并失败。 即使是恒定的字符串也搞砸了
public class Util {
public static String FixRussianString(String string){
try {
return new String(string.getBytes("CP1251"), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return string;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.