像ä,ö,ü这样的特殊人物

时间:2012-10-31 23:00:27

标签: google-app-engine utf-8 special-characters

我正在尝试使用Google App Engine这样的特殊字符,例如德国变形金刚(ä,ö,ü),但遗憾的是它不起作用。 Eclipse文本文件编码设置为UTF-8,我在<meta http-equiv="content-type" content="text/html; charset=UTF-8">使用index.htmlweb.xml也使用encoding="utf-8"

如果我在本地编译项目,则会正确显示字符。如果我将其部署到google appspot,则字符显示如下:��。我还检查了浏览器编码,设置为UTF-8,我错过了什么?

修改 这是一个在本地工作但不在线的示例:

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>ä ö ü</title>
</head>
<body>
    <form name="profile" action="">
        <select name="p" size="1">
            <option value="1">ä</option>
            <option value="2">ö</option>
        </select>
    </form>
</body>

EDIT2 我可以隔离这个问题。一开始我使用谷歌频道api与客户沟通。在这里,我将令牌写入用户。这就是问题。这是代码:

我想我必须转换为UTF-8,但在哪里?

FileReader reader = new FileReader("index.html");
CharBuffer buffer = CharBuffer.allocate(16384);
reader.read(buffer);
reader.close();

String index = new String(buffer.array());
index = index.replaceAll("\\{\\{ token \\}\\}", token);
index = index.replaceAll("\\{\\{ user \\}\\}", account);

resp.getWriter().write(index);

为什么字符在线无法正确显示?

1 个答案:

答案 0 :(得分:0)

FileReader始终使用平台默认编码。使用

InputStreamReader(new FileInputStream("index.html"), "UTF-8")