protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String FilePath = this.getServletContext().getRealPath("/Template/notice");
String Content = new String(FileCls.readFile(FilePath,"UTF-8").getBytes("ISO8859-1"),"UTF-8");
out.print(Content);
}
读文件的类:
public class FileCls {
public static String readFile(String filename,String Encoder){
String read;
String readStr = "";;
try {
BufferedReader bufread=new BufferedReader(new InputStreamReader(new FileInputStream(filename),Encoder));
while ((read = bufread.readLine()) != null) {
readStr = readStr + read+ "\r\n";
}
} catch (IOException e) {
e.printStackTrace();
}
return readStr;
}
}
模板文件都是用的UTF-8,META信息也设置为UTF-8了,是哪里写得有问题?
这个应该是多次转码的问题修改server.xml 加上 URIEcoding = "UTF-8" 试试乱码的问题的一直都是一个很头疼的问题 多遇到几次 搞习惯了 就好了
首先打印:System.out.println("编码格式为:"+java.nio.charset.Charset.defaultCharset()); 看看你到底是什么编码格式 如果不是UTF-8 如下设置一下
你打开我的电脑-高级-环境变量-系统变量 设置一下
变量名:JAVA_TOOL_OPTIONS
变量值:-Dfile.encoding=UTF-8
变量值可根据你的编码改变你计算机的根本编码格式
设置后需要重启电脑才能生效java常见乱码总结推荐:
http://blog.csdn.net/zhangao0086/article/details/6240379