Google Calendar APIによるsummaryが日本語表示されない

159 views
Skip to first unread message

soujiro0725

unread,
Jul 16, 2010, 12:42:03 AM7/16/10
to Google-App-Engine-Japan
App EngineでGoogle Calendar APIを利用し、カレンダーデータをサーブレットで抽出しようとしています。

Eclipse3.5 で開発しています。

//--------------------途中から---------------------------
CalendarEventFeed myFeed = myService.getFeed(myQuery,
CalendarEventFeed.class);
for (int i = myFeed.getEntries().size() - 1; 0 <= i; i-- ) {
CalendarEventEntry entry = myFeed.getEntries().get(i);

html = html + "<p>" + entry.getTitle().getPlainText() + "</p>"
html = html + "<p>" + entry.getSummary().getPlainText() + "</p>";
html = html + "<br>";

}
//-----------------------------------------------------------

こんな感じで取得しています。

デプロイ後の結果は、

-----------------------------------------------
.…夏祭り(タイトル)
When: Tue Jul 20, 2010 6pm to 7:30pm? JST Where: 〒192-0042東京都.…
-----------------------------------------------

しかし、不思議なことに、ローカル(つまり、 http://localhost:8888/ で実行)すると

-----------------------------------------------
.…夏祭り(タイトル)

期間: 2010/07/20 (火) 18:00?19:30? JST 場所: 〒192-0042東京都.…
-----------------------------------------------

と期待通りの結果が出ます。なぜかサーバーにデプロイすると、日本語表記が英語にかわってしまいます。
文字化けするわけではなく、あくまでサマリーの表記を英語に変えてしまっているようですが、それがなにかがわかりません。
わかる方いらっしゃいますか?

yagizo

unread,
Jul 16, 2010, 7:55:49 AM7/16/10
to Google-App-Engine-Japan
yagizoです。

Calender APIは使ったことがないのであくまで想像ですが、

http://oshiete.goo.ne.jp/qa/4683609.html

これと同じ話ではないですかね?

とはいえ、GAEサーバからGDATA APIsへのアクセスは生のHTTPを使うわけじゃなくて
JavaやPythonのAPIを経由して(多分内部的にはURLFetchが使われて)おこなうので、
Accept-Languagesはいじれなくて解決方法がない、って話になってしまいますが。。。
#自分でURLFetchつかってゴリゴリと書けばいじれますがそんな手間は誰もかけたく
#ないでしょうし。


On 7月16日, 午後1:42, soujiro0725 <soujiro0...@gmail.com> wrote:
> App EngineでGoogle Calendar APIを利用し、カレンダーデータをサーブレットで抽出しようとしています。
>
> Eclipse3.5 で開発しています。
>
> //--------------------途中から---------------------------
> CalendarEventFeed myFeed = myService.getFeed(myQuery,
> CalendarEventFeed.class);
> for (int i = myFeed.getEntries().size() - 1; 0 <= i; i-- ) {
> CalendarEventEntry entry = myFeed.getEntries().get(i);
>
> html = html + "<p>" + entry.getTitle().getPlainText() + "</p>"
> html = html + "<p>" + entry.getSummary().getPlainText() + "</p>";
> html = html + "<br>";
>
> }
>
> //-----------------------------------------------------------
>
> こんな感じで取得しています。
>
> デプロイ後の結果は、
>
> -----------------------------------------------
> .…夏祭り(タイトル)
> When: Tue Jul 20, 2010 6pm to 7:30pm? JST Where: 〒192-0042東京都.…
> -----------------------------------------------
>
> しかし、不思議なことに、ローカル(つまり、http://localhost:8888/で実行)すると

soujiro0725

unread,
Jul 16, 2010, 11:00:51 PM7/16/10
to Google-App-Engine-Japan
ご返事ありがとうございます。実は英語版のApp Engine Groupに同じ質問をしたんですが、回答がつかなかったんです(汗)

結局XMLを直接パースするしかないですかね…JavaのXMLはよくわからないから避けたかったんですが…(JavaScriptやRubyならやっ
たことあります。)

もしCalendar APIの解決法がわかる方がいましたら追記お願いします。

JavaのXMLを勉強するよい方法がありましたら、教えていただけたら幸いです(書籍、サイトなど)。

yagizo

unread,
Jul 27, 2010, 7:17:27 AM7/27/10
to Google-App-Engine-Japan
yagizoです。

XMLを直接パースしなくても、Google Dataプロトコルの実体はAtom形式なので
Atomのライブラリ使えばいいかも、とも思ったりしますが、どちらにしろ敷居は
高いですね。

むしろGoogle Data API(for Javaに限らずどの言語でも)はオープンソース
なので(Apacheライセンスだから自由度高し)それを改造しちゃうのが手かも
知れませんよ。
HTTPリクエスト投げる時のヘッダの追加だけなので、なんとかなりそうな気も
しないではないです。
自分はGAE/P使ってるのでお助けできませんが・・・。
Reply all
Reply to author
Forward
0 new messages