我正在尝试使用Google App Engine
这样的特殊字符,例如德国变形金刚(ä,ö,ü),但遗憾的是它不起作用。 Eclipse文本文件编码设置为UTF-8
,我在<meta http-equiv="content-type" content="text/html; charset=UTF-8">
使用index.html
,web.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);
为什么字符在线无法正确显示?
答案 0 :(得分:0)
FileReader始终使用平台默认编码。使用
InputStreamReader(new FileInputStream("index.html"), "UTF-8")