質問: Calendar.getInstance(); //getParameter:引数にパラメータ名を指定 //この場合、下の【A】もしくは【B】で渡しているパラメータから //年、月の値をatrYear strMonthに代入 //存在しなければnullを返す String strYear=request.getParameter("year"); String strMonth=request.getParameter("month"); int intYear; int intMonth; //パラメータ無しならばShowCalendar1と同様の処理。 //パラメータあった場合は下記if文内の処理実施 if(strYear!=null && strMonth!=null){ //一旦intMonthTempに代入 int intMonthTemp=Integer.parseInt(strMonth); //12で割ったあまりを代入: // 0の場合は0を代入(12月) //13の場合は1を代入( 1月) intMonth=intMonthTemp%12; //13の場合、1を足した年を代入、その他は年のまま intYear=Integer.parseInt(strYear)+intMonthTemp/12; //12月の場合はintMonthが0となるため、これを12月に変更し、年を一年減少 //ゼロオリジンの回避 if(intMonth==0){ intMonth=12; intYear--; } //上記結果のintYearとintMonth-1で初期化 cal.set(Calendar.YEAR,intYear); cal.set(Calendar.MONTH,intMonth-1); } //追記 intYear=cal.get(Calendar.YEAR); intMonth=cal.get(Calendar.MONTH)+1; cal.set(Calendar.DATE,1); int k =cal.get(Calendar.DAY_OF_WEEK)-1; %> CALENDAR <%//追記【A】%> 前月 <%=intYear%>年<%=intMonth%>月 <%//追記【B】%> 翌月 日 月 火 水 木 金 土 <%int d=1; //月内の間はループ while(cal.get(Calendar.MONTH)==intMonth-1){%> <%for(int j=0;j<7;j++){%> <% //各曜日のクラス決定 if(j==0){%> <%}else if(j==6){%> <%}else{%> <%}//■終了■各曜日のクラス決定%> <% //もしkが0()=日曜)でなければkから1を引く //【k】: 日曜が0、土曜が6 //はじめの1日目を書き込む曜日の確定用 //=前月分の空枠 if(k!=0){ k--; //もしkが0(=日曜)なら、もし月内の間なら //月が不一致の場合は空白出力 }else if (cal.get(Calendar.MONTH)==intMonth-1){%> <%=d++%> <%cal.add(Calendar.DATE,1);%> <%}%> <%}%> <%}%> ``` ### 試したこと タグの打ち間違いかとも思って打ち直したのですが、それでもうまくいきませんでした ### 補足情報(言語/FW/ツール等のバージョンなど) Eclipse Tomcat6.0
回答: まとめときます。 1. 保存するときの文字コードを utf-8 にするべし 2. @pageタグで文字コードを content-type で charset=utf-8 と明示するべし 3. @pageタグで文字コードを pageEncoding で utf-8 と明示するべし