0

ドイツ語のウムラウト(ä、ö、ü)のような特殊文字をで動作させようとしていますGoogle App Engineが、残念ながら動作しません。Eclipseテキストファイルのエンコーディングはに設定されています。私はでUTF-8使用<meta http-equiv="content-type" content="text/html; charset=UTF-8">し、index.htmlweb.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);

キャラクターがオンラインで正しく表示されないのはなぜですか?

4

1 に答える 1

0

FileReader は常にプラットフォームのデフォルトのエンコーディングを使用します。使用する

InputStreamReader(new FileInputStream("index.html"), "UTF-8")
于 2012-11-01T16:30:43.103 に答える