ドイツ語のウムラウト(ä、ö、ü)のような特殊文字をで動作させようとしていますGoogle App Engine
が、残念ながら動作しません。Eclipseテキストファイルのエンコーディングはに設定されています。私はでUTF-8
使用<meta http-equiv="content-type" content="text/html; charset=UTF-8">
し、index.html
もweb.xml
使用していencoding="utf-8"
ます。
プロジェクトをローカルでコンパイルすると、文字が正しく表示されます。グーグルアプリスポットにデプロイすると、文字は次のように表示されます��
。ブラウザのエンコーディングもチェックしました。これはに設定されていますが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 問題を切り分けることができました。最初は、Googleチャネル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);
キャラクターがオンラインで正しく表示されないのはなぜですか?