首页 > 代码库 > Java Web 乱码

Java Web 乱码

在做关于 Java Web 的项目中,有时候项目的整体设置为 utf-8 编码以后,你还是会发现项目还是乱码。

1.出现乱码实例

正如下图所示:

技术分享

虽然在代码中,加入了:request.setCharacterEncoding("utf-8"); 结果还是会乱码。

/** * 插入管理员 */@WebServlet("/intsertinfo")public class IntsertAdmininfoServlet extends HttpServlet {	private static final long serialVersionUID = 1L;    public IntsertAdmininfoServlet() {        super();    }	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		UpdateAdminTrueServlet u=new UpdateAdminTrueServlet();		// TODO Auto-generated method stub		request.setCharacterEncoding("utf-8");		String LoginName=request.getParameter("loginname");		String Password=request.getParameter("password");		String RealName=request.getParameter("realname");		String LastLoginIP="127.0.0.1";		String sql="INSERT INTO [dbo].[Admin] ([LoginName],[Password],[RealName],[LastLoginIP]) VALUES (‘"+LoginName+"‘, ‘"+Password+"‘,
             ‘"+RealName+"‘, ‘"+LastLoginIP+"‘) "; try { SqlHelp sh=new SqlHelp(); boolean h=sh.insert(sql); if(!h)request.getRequestDispatcher("/listAllAdmin").forward(request, response); else System.out.println("插入失败!"); } catch (Exception e) { e.printStackTrace(); } }}

2.解决乱码问题

为了解决这个问题,我们得定义一个类,代码如下:

	/**	 * 对字符串进行解码	 * 	 * @param string	 *            需要转码的字符串	 * @param codeMode	 *            目标格式	 * @return 转码后的字符串	 */	public static  String decoder(String string, String codeMode) {		try {			String s = new String(string.getBytes("ISO-8859-1"), codeMode);			return s;		} catch (Exception e) {			e.printStackTrace();		}		return null;	}

  加入这个方法。然后调用这个方法,传入解码的 string(字符串) 和 codeMode(编码的方式),就可以了。

String lname=decoder(request.getParameter("loginname"),"utf-8");String rname=decoder(request.getParameter("realname"),"utf-8");

  技术分享

希望对您有帮助,欢迎点赞。

 

Java Web 乱码