用户在页面输入的中文数据,servlet如何获得正确的中文值
生活随笔
收集整理的這篇文章主要介紹了
用户在页面输入的中文数据,servlet如何获得正确的中文值
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 告訴瀏覽器,返回的是html頁面,而且是以u(píng)tf-8編碼的response.setContentType("text/html;charset=utf-8");//request.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();String name = request.getParameter("name");/**其實(shí)servlet默認(rèn)是以ISO-8859-1解碼中文,這個(gè)肯定會(huì)出現(xiàn)亂碼,因?yàn)闉g覽器就是以u(píng)tf-8編碼后傳給服務(wù)器的;*name.getBytes("ISO-8859-1")這是以ISO-8859-1對(duì)錯(cuò)誤的Unicode編碼進(jìn)行編碼,重新獲得utf-8編碼,即字節(jié)數(shù)組;*new String(name.getBytes("ISO-8859-1"), "utf-8")這步是以u(píng)tf-8重新解碼得到正確的Unicode編碼*正確的Unicode編碼才能輸出正確的中文字符*/String name2 = new String(name.getBytes("ISO-8859-1"), "utf-8");double salary = Double.parseDouble(request.getParameter("salary"));int age = Integer.parseInt(request.getParameter("age"));System.out.println("name:"+name2);System.out.println("salary:"+salary);System.out.println("age:"+age);
}
當(dāng)然也可以這樣子:
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");//這就是讓servlet以u(píng)tf-8解碼參數(shù)值,那么就可以直接得到正確的中文值了request.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();String name = request.getParameter("name");double salary = Double.parseDouble(request.getParameter("salary"));int age = Integer.parseInt(request.getParameter("age"));System.out.println("name:"+name);System.out.println("salary:"+salary);System.out.println("age:"+age); }總結(jié)
以上是生活随笔為你收集整理的用户在页面输入的中文数据,servlet如何获得正确的中文值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当兵的工资多少钱一个月(两年兵退伍能给1
- 下一篇: IntelliJ IDEA 如何设置编辑