拡張文字を含む変数を JSP に渡すと、レンダリングされたファイルの末尾が非 ASCII 文字ごとに 2 バイトずつ切り捨てられます。これはなぜですか?ここに例があります。
私のコントローラー:
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class CharTestController {
@RequestMapping(value="/chartest.do")
public String handleRequest(ModelMap model) throws Exception {
char var1=9829; // Heart Char
String var2="™"; // TM symbol
model.addAttribute("var1", var1);
model.addAttribute("var2", var2);
return "chartest";
}
}
私のJSP:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
${var1} <c:out value="${var1}" />
${var2} <c:out value="${var2}" />
9876543210
私の出力:
♥ ♥ ™ ™ 98
変数を使用するか、単に出力するかに関係なく、4 文字を出力したため、最後から 8 バイトが欠落しています。何か案は?