繁体   English   中英

Google App Engine编码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM