我写了一个javabean,用来记录日志的
package HU.web;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.Date;
/**
* Title: 明细单信息
huhui
*/
public class RIZHI{
private PrintWriter pw;
private String div= "/1.txt ";
public void RIZHI(){}
public void log(String msg) {
try{
pw=new PrintWriter(new FileWriter(div,true),true);
pw.println(new Date() + ": " + msg);
pw.close();
}catch(IOException e){pw.println(e.getMessage());}
}
}
然后在主文件里是这样调用的。
<%@ page contentType= "text/html; charset=gb2312 " language= "java " import= "java.sql.* " errorPage= " " %>
<jsp:useBean id= "yhxx1 " scope= "page " class= "HU.web.YHXX " />
<jsp:useBean id= "rizhi1 " scope= "page " class= "HU.web.RIZHI " />
<%
String Page=request.getParameter( "page ");
String xsyid=request.getParameter( "xsyid ");
String xsyxm=(String)session.getAttribute( "xsyxm ");
if (xsyid!=null){
yhxx1.setXsyid(xsyid);
yhxx1.excute();
}
String xm=yhxx1.getXsyxm();
yhxx1.Edit(request);
response.sendRedirect( "yhxx_bh.jsp?page= "+Page);
rizhi1.log( "用户名为 "+xsyxm+ "修改了用户id "+xsyid+ "用户名为 "+xm+ "的用户信息 ");
%>
运行了以后,把文件关闭后再打开,最后一句里面的那些中文字都变成乱码,就是这句阿rizhi1.log( "用户名为 "+xsyxm+ "修改了用户id "+xsyid+ "用户名为 "+xm+ "的用户信息 ");
双引号里面的中文字都变成了乱码,哪位大虾帮帮忙啊。都看不清楚些的是什么字。真是倒霉。
------解决方案--------------------
加入pageEncoding属性试试
<%@ page language= "java " pageEncoding= "GB2312 "%>
------解决方案--------------------
页面代码修改:
String filename= "用户名为 "+xsyxm+ "修改了用户id "+xsyid+ "用户名为 "+xm+ "的用户信息 ";
Tools tool = new Tools();
filename = tool.reconvert(filename);
rizhi1.log(filename);
Tools工具代码:
public class Tools{
public String reconvert(String str) {
String str1 = null;
if (str != null) {
try {
str1 = new String(str.getBytes( "GBK "), "ISO8859_1 ");
} catch (Exception e) {
return str1;
}
}
return str1;
}
}
试试吧,字符串编码反转换,保存EXCEL文件中文名的时候就要做这种转换。应该能解决你的问题。
------解决方案--------------------
手动转码
public String chgCode(String in){
String out = null;
try {
// iso-8859-1 GB2312 GBK UTF-8 都试下