我在Java端有这个代码:
....
PrintWriter writer = response.getWriter();
response.setContentType("application/json; charset=utf-8");
response.setCharacterEncoding("UTF-8");
....
我将Struts2,JSP和Java用于MySQL和Apache的应用程序。当我向响应对象写入内容并检查firebug中的内容类型时,它总是
charset=ISO-8859-1
所以,当我想在响应对象上写一些东西时会发生无法识别的字符。
我的jsp文件每次都有这行:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
我测试了我的程序,当它运行时没有经过.htaccess一切正常。我知道.htaccess会更改内容类型。
我尝试过这样的事情:
http://www.askapache.com/htaccess/setting-charset-in-htaccess.html
但是我不确定我会错过什么或尝试别的什么?
答案 0 :(得分:0)
尝试在JSP页眉中指定编码,如下所示:
<%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" trimDirectiveWhitespaces="true" %>
答案 1 :(得分:0)
由于您使用response.setCharacterEncoding()
设置字符编码,为什么不在不指定字符集的情况下设置Content-Type?
response.setContentType("application/json");