sastruts mobylet mayaa

sastruts + mobylet + mayaa문자 깨짐 조사.

이번 프로젝트의 휴대폰 사이트 부분에서 문자 깨짐 현상이 발생하여 여러가지 문제를 조사한 결가 아래처럼 하면 문제깨짐은 문제없이 잘 표시됩에 잊지 않기 위해 메모 해둠.

템플릿 포멧은 Shift-JIS이고 meta에는

<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS” />

위처럼 설정이 되여 있어 Softbank에서는 문자가 깨짐.

자동으로 UTF-8로 인식을 해야하는데 Shift_JIS로 되여 있어서 일단은 문자 깨짐

여기서 디바이스를 판단해 따로 설정해주면 해결가능

템플릿 엔진인 mayaa설을을 아래처럼 하고 , 템플렛 파일도 아래처럼

#SSI File

charset.mayaa

<m:beforeRender><![CDATA[
request.newAttribute(“charsetUtil”, Packages.jp.xxxx.ec.util.ec.mobile.CharsetUtil);
var charsetName = charsetUtil.getCharsetName();
//java.lang.System.out.println(“★★” + charsetName);
if (charsetName == ‘x-mobylet-docomo’){
response.setContentType(“text/html; charset=Shift_JIS”);
}else if (charsetName == ‘x-mobylet-au’){
response.setContentType(“text/html; charset=Shift_JIS”);
}else{
response.setContentType(“text/html; charset=UTF-8”);
}
]]></m:beforeRender>
charset.html
<meta/>
#template
index.xhtml
<!–#include virtual=”/charset.html”–>
#java
package jp.xxxx.ec.util.ec.mobile;

import org.mobylet.core.Mobylet;
import org.mobylet.core.MobyletFactory;

public class CharsetUtil {

  public static String getCharsetName() {

    Mobylet m = MobyletFactory.getInstance();
    String charsetName = m.getDialect().getContentCharsetName();
    //charsetName = m.getDialect().getCharsetName();

  return charsetName;

  }

}

Leave a Reply

Your email address will not be published. Required fields are marked *