我想用Freemarker打印重音字符,但是在重音字符處,我只能得到問號。我已經驗證了,那下面的語句成立:Freemarker編碼 - 重音字符處的問號
"UTF-8" == Environment.getCurrentEnvironment().getConfiguration().getDefaultEncoding()
我可以很容易地看到,重音的字符在變量給它的模板之前正確舉行。
我的freemarker的情況下可以在這裏找到:https://gist.github.com/1975239
例如,而不是:
Jedinečný živý koncert, kde nejen, že uslyšíte, ale i uvidíte splynutí metalové kapely s padesátičlenným orchestrem včetně.
我不斷收到:
Jedine?ný ?ivý koncert, kde nejen, ?e usly?íte, ale i uvidíte splynutí metalové kapely s padesáti?lenným orchestrem v?etn?.
感謝。
謝謝,這更有意義了,但我沒有創建OutputStream的情況下,我想這是由Spring創建。在調試時,我可以看到它使用org.apache.catalina.connector.CoyoteWriter,但我找不到任何對它的編碼的參考。謝謝 – 2012-03-05 17:20:52
Catalina使用的字符集肯定取決於「HttpServletResponse」的「characterEncoding」屬性。所以如果你在MVC控制器中有'response.setContentType(「text/html; charset = UTF-8」);'''''',那可能會解決它。但是,這可能不是在Spring中設置編碼的正確方法。 – ddekany 2012-03-06 22:34:04
好的,謝謝!使用HttpServletResponse.setCharacterEncoding()做了詭計! – 2012-03-06 23:56:44