精华内容
下载资源
问答
  • 在本篇文章里小编给大家整理的是关于JavaWeb中文编码问题方法的相关知识点内容,需要的朋友们参考下
  • javaWeb汉字乱码问题

    2018-03-06 20:37:01
     汉字内码扩展规范,是基于GB2312上拓展的,加入了更多的汉字,能表示21003个汉字。它的编码  是和GB2312兼容的。也就是说用GB2312编码的汉字可以用GBK来解码,并且不会乱码。倒过来就不完  全可以了,因为GB2312...

    charset=这个设置为UTF-8

    pageEncoding=UTF-8

    meta里面这个charset设置UTF-8或者GBK

    编码方式:

       1、ASCII 码

           众所周知,这是最简单的编码。它总共可以表示128个字符,0~31是控制字符如换行、回车、删

        除等,32~126是打印字符,可以通过键盘输入并且能够显示出来的。

        2、ISO-8859-1

          它是基于ASCII码基础上扩展的,它总共能表示256个字符,涵盖了大多数西欧语言字符。详见

        ISO-8859-1 编码    该编码不支持中文,举个中文编码栗子:

        字符串“I am 君山”用 ISO-8859-1 编码,下面是编码结果:

        

        由于ISO-8859-1 是单字节编码且不支持中文,直接将中文字符转成‘3f’, 3f也就是常见的"?"字符

        3、GB2312

          它是双字节编码,共包含6763个汉字。

        4、GBK

          汉字内码扩展规范,是基于GB2312上拓展的,加入了更多的汉字,能表示21003个汉字。它的编码

        是和GB2312兼容的。也就是说用GB2312编码的汉字可以用GBK来解码,并且不会乱码。倒过来就不完

        全可以了,因为GB2312描述的汉字比GBK少。

        5、UTF-16

          UTF-16是基于Unicode上定义的, 用两个字节来表示Unicode的转换格式,它采用定长的表示方法,

        即不能什么字符都可以用两个字节表示。两个字节是16个bit,所以就做UTF-16。(Unicode 囊括了世界

        上所有语言,所有语言均可通过Unicode来相互翻译,详解 Unicode 编码

        6、UTF-8

          由于UTF-16统一采用两个字节来表示一个字符, 有很多字符用一个字节表示即可。所以存储空间放

        大了一倍,还会增加网络传输的流量,所以推出了UTF-8。 UTF-8采用了一种变长技术,每个编码区域有

        不同的字码长度。

        通过上面介绍和对比,对于中文字符的处理我想UTF-8是最理想的中文编码。


    展开全文
  • javaweb中文过滤器

    2010-04-22 14:15:19
    javaweb里用来处理页面中文的,解决中文乱码问题
  • JavaWeb中文乱码问题

    2015-10-15 16:34:25
    JavaWeb中文乱码问题当表单的提交方式是get方式的时候:resp.setContentType("text/html;charset=gb2312"); PrintWriter out = resp.getWriter(); String info = req.getParameter("info"); info = new String(info....

    JavaWeb中文乱码问题


    当表单的提交方式是get方式的时候:

    resp.setContentType("text/html;charset=gb2312"); 
    
    PrintWriter out = resp.getWriter();
    String info = req.getParameter("info");
    info = new String(info.getBytes("iso8859-1"), "gb2312");

    当表单的提交方式是post的时候:
    代码添加:

            response.setContentType("text/html;charset=gb2312");
            request.setCharacterEncoding("gb2312");

    然后在tomcat目录:tomcat7.0/conf/server.xml 修改该文件配置:

      <Connector executor="tomcatThreadPool"
                   port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" 
                  URIEncoding="gb2312"/> //添加这一行代码即可

    如果再不行可以在htm页面进行修改编码:

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    展开全文
  • JavaWeb可能出现编码转换的地方: 1 HTTP请求中的URI,Cookie,Post表单参数需要解码。 2 数据库的读写,文件读写需要编解码。 3 所有数据从socket返回时需要编码,浏览器解析页面需要解码。 URL的编解码 ...

    Java作为跨平台语言,涉及到的编解码问题也比较多,我们来探讨一下HTTP请求如何控制编码格式。

    几种常见的编码格式

    为什么要编码

    由于计算机只能看懂01,人类只能看懂字符,所以要进行编码和解码。

    1 在计算机中,一个字节是最小的信息存储单元,而一个字节只能表示256个字符。

    2 人类需要的符号远远超过256个。

    如何翻译

    各种语言需要交流,如何进行翻译呢,在计算机中提供了常见的翻译方式。比如ASCII,UTF-8等编码方式,他们可以被看做字典,可以让字节数组变成对应的字符。那么他们有什么区别呢。

    1 ASCII码
    一共有128个,用一个字节的低七位表示。

    2 ISO

    128个字符显然不够用,于是在ASCII基础上建立了ISO-8559编码。虽然仍是单字节,但可以表示256字符。

    3 GB2312

    是双字节编码,可以表示6763个汉字

    4 GBK

    它扩展了GB2312,功能表示21003个汉字。他和GB2312相互兼容

    5 UTF-16

    首先说下Unicode,ISO试图简历一个超语言词典,让所有语言都可以通过这个字典翻译。这是非常复杂的。

    UTF-16定义了Unicode字符在计算机中的存储方法,UTF-16用两个字节来表示Unicode的转化格式,并且使用定长的方法,无论什么字符都可以用2个字节表示。

    这大大简化了字符串操作,所以Java使用UTF-16作为内存字符的存储格式。

    6 UTF-8
    UTF-16统一使用两个字节表示一个字符,虽然很简单,但是很多字符只需要一个字节就可以表示了,相当于多处用了一倍的空间。

    在网络带宽有限的情况下,没有必要。UTF-8使用变长技术,每个编码区有不同的字码长度。所有字符可以用1-6个字节组成。

    如果是一个字节的字符那么就是ASCII码了

    Java中需要编码的场景

    io操作中存在的编码

    字节流到字符流的互相转换需要用到编码

    内存操作中的编码

    使用String字符串和byte数组进行相互转换时,需要指定编码

    Java中如何编解码

    一般指定charsetname为指定编码格式即可。

    各种编码实践

    对几种编码格式的比较

    1 对于中文字符,使用GBK好一点

    2 对于Unicode字符,使用UTF-16的编码效率较高,转换更简单,进行字符串操作也更好,适合在磁盘和内存之间使用,但是不适合进行网络传输,因为双字节容易损坏,且占用空间大。

    3 UTF-8更适合网络传输,UTF-8使用单字节存储,单个字符损坏不影响其他字符。

    Java Web中设计的编解码

    对于http网络传输,考虑压缩数据,减少网络传输量,但是有的压缩算法只减少字符数但是不减少字节数。

    在计算机中,汉字的表示方式一般是一个字符使用两个字节来表示,所以Java的char类型也是16个bit,也就是2个字节。

    JavaWeb可能出现编码转换的地方:

    1 HTTP请求中的URI,Cookie,Post表单参数需要解码。

    2 数据库的读写,文件读写需要编解码。

    3 所有数据从socket返回时需要编码,浏览器解析页面需要解码。

    URL的编解码

    一个URL可以被分为好多个组成部分

    http://localhost:8080/hello/servlet/黄蓬龙?name=h2pl

    scheme domain port context servletpath pathinfo querystring

    这部分中,url不包括querystring,uri则只包括hello/servlet/黄蓬龙,也就是context+servletpath+pathinfo。

    所以uri只是定位资源,但是不包括网络协议

    对于Tomcat而言,servlet会把这个url解析为一下几个部分。
    事实上一部分配置是在server.xml配置文件中定义的。

    1 port是配置文件中的connector port定义的。
    
    2 context path是在配置文件中定义的
    
    3 servletpath是web.xml的url-pattern中定义的。
    
    4 pathinfo是我们具体请求的servlet
    
    5 querystring是要传递的参数
    

    pathinfo采用utf-8编码,querystring采用gbk编码

    总结就是,url的编解码过程比较复杂,不是我们在应用中能控制的,所以尽量避免在url中使用非ASCII字符。

    HTTP header的编解码

    同理,默认使用ISO编码且不能改变,所以不用有非ASCII字符。

    POST表单的编解码

    post使用body传递数据,而header中设置了contenttype,所以我们根据这个编码格式进行编解码即可。

    http body的编解码

    上面讲过了。

    另外JDBC的编码设置要和数据库内置的数据编码保持一致。

    在JS中的编码问题

    外部引入JS文件

    引入时需要设置编码,否则可能乱码

    JS的URL编码

    其他需要编码的地方

    1 xml可以设置头指定编码格式

    2 velocity模板设置编码

    3 jsp设置编码

    常见问题分析

    中文字符变乱码

    编码解码的字符集不一致

    一个汉字变成问号

    将中文经过ISO编码(不支持中文)后会变成?

    一个汉字变成两个问号

    可能是多次编码过程中出错。

    不正常的正确编码

    微信公众号

    个人公众号:程序员黄小斜

    微信公众号【程序员黄小斜】新生代青年聚集地,程序员成长充电站。作者黄小斜,职业是阿里程序员,身份是斜杠青年,希望和更多的程序员交朋友,一起进步和成长!专注于分享技术、面试、职场等成长干货,这一次,我们一起出发。

    关注公众号后回复“2020”领取我这两年整理的学习资料,涵盖自学编程、求职面试、算法刷题、Java技术学习、计算机基础和考研等8000G资料合集。

    技术公众号:Java技术江湖

    微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站,专注于 Java 相关技术:SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程,偶尔讲点Docker、ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!

    关注公众号后回复“PDF”即可领取200+页的《Java工程师面试指南》强烈推荐,几乎涵盖所有Java工程师必知必会的知识点。

    展开全文
  • javaweb中文乱码

    2018-08-15 19:55:55
    一开始没怎么注意,发现前台获取到的关于中文的字符都会出现乱码, 回过头来,仔细看了下,我这里使用了response,但是没有对其进行编码设置 在这段代码里添加:response.setCharacterEncoding("UTF-8"); ...

    乱码在项目开发中是很常见的一个问题,各种各样。。。

    今天我就遇到了一个关于response乱码的问题

    代码是这样的

    @RequestMapping(value="/findUser",produces="application/json;charset=utf-8")
    @ResponseBody
    public void findUser(User user,Map<String, Object> map) throws Exception{
    		
    		List<User> list=userService.findUser(user);
    		JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(list));
    		PrintWriter out=response.getWriter();
    		out.println(jsonArray);
    		out.flush();
    		out.close();
    }

    一开始没怎么注意,发现前台获取到的关于中文的字符都会出现乱码,

    回过头来,仔细看了下,我这里使用了response,但是没有对其进行编码设置

    在这段代码里添加:response.setCharacterEncoding("UTF-8");

    即可,如下:

    @RequestMapping(value="/findUser",produces="application/json;charset=utf-8")
    @ResponseBody
    public void findUser(User user,Map<String, Object> map) throws Exception{
    		
    		List<User> list=userService.findUser(user);
    		JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(list));
            response.setCharacterEncoding("UTF-8");
    		PrintWriter out=response.getWriter();
    		out.println(jsonArray);
    		out.flush();
    		out.close();
    }

    在这里,推荐一篇很不错的博文,是关于各种类型的乱码及解决方法。

    https://blog.csdn.net/bbb695480667/article/details/53789968

    展开全文
  • JavaWeb中文乱码

    2018-02-03 18:49:29
    HttpServletResponse中文乱码 向web页面输出中文乱码 在获取response.getWriter()之前 加上: response.setContentType("text/html;charset=UTF-8"); 或者 response.setHeader("Content-Type", ...
  • JavaWeb中文乱码解决方案
  • javaweb中文乱码解决

    2018-02-26 12:51:00
    JavaWeb的各种中文乱码终极解决方法 注:非原创 一、Servlet输出乱码 1.用servlet.getOutStream字节流输出中文,假设要输出的是Stringstr="钓鱼岛是中国的,无耻才是日本的"。 1.1若是本地服务器与本地客户端...
  • 详谈JavaWeb中文乱码的几个地方 【字符与字节之间的转换是通过查表完成的,将字符转换成字节的过程叫做编码,将字节转换为字符的过程称为解码,如果编码和解码使用的码不一致,就会导致乱码问题!】 1.在浏览器显示...
  • Servlet JavaWeb 中文乱码

    2021-03-22 19:21:55
    // 设置动态文字(参数,数据库) // 从request中取得的值或从数据库中取出的值 request.setCharacterEncoding(“utf-8”); // 设置页面静态文字 ...response.setContentType(“text/hmtl;charset=utf-8”);...
  • Javaweb中文乱码解决

    2021-01-08 12:48:31
    请求时候的乱码: request.setCharacterEncoding("utf-8"); 响应的时候的乱码 response.setContentType("text/html;charset=utf-8") response.setHead("content-type","text/html;charset=utf-8");
  • JavaWeb中JSP程序存在有与Servlet程序完全相同的中文乱码问题。输出响应正文时出现的中文乱码问题读取浏览器传递的参数信息时出现的中文乱码问题 JSP引擎将JSP页面翻译成Servlet源文件时也可能导致中文乱码问题JSP...
  • JavaWeb中文乱码解决

    2020-05-17 10:14:10
    请求 get请求 //Tomcat8.0以上可以直接获取请求参数的值 if(username!=null){ username=new String(request.getParameter("username").getBytes("iso-8859-1"),"utf-8"); } post请求 request.setCharacterEncoding...
  • JavaWeb应用开发常见的问题中,中文的乱码问题在页面中没有统一的方法解决,造成程序员浪费大量的时间与精力且代码效率不高,因此提出了新的乱码算法,并设计了通用的乱码处理器,提高了程序员的工作效率。
  • JavaWeb中文乱码初探

    2016-04-16 21:32:50
    一、前言 在开发JavaWeb的过程中,难免会出现中文乱码的问题。接下来写的是我在解决中文乱码问题时的学习心得,一是为了能加深印象,二是希望能帮初学者们解决一些疑惑。如有说的不对的地方,希望及时指出批评。 二...
  • javaweb中文乱码问题

    千次阅读 2017-01-21 18:34:59
    字符-->字节、字节-->字符时需要用到编码...gbk2312:包含6000多的汉字,一个英文字符一个字节表示,一个汉子两个字节表示。 gbk:包含20000多个汉字,包含gbk2312所有编码。 utf-16:每个字符用两个字节表示。
  • Javaweb中文乱码问题

    2019-09-21 21:03:42
    request.setCharacterEncoding("utf-8");必须写在获得参数之前,即request.getParameter();之前 转载于:https://www.cnblogs.com/lly001/p/6596201.html
  • 全是中文文档,windows系统可以直接打开查询,包括JAVA,JDK中文手册,H5(W3C)中文手册,Jquery中文手册,CSS3.0中文手册,bootstrap中文网址以及C++中文手册(包括STL)和Mysql中文参考手册。
  • 中文乱码出现的原因是由于原因主要有两个:一个是字符...javaWeb中乱码情况主要分三种情况: 一、jsp页面显示中文乱码。保存中文字符 重新打开乱码。 二、客户端发送数据到服务器,服务器接收出现乱码。客户端发...
  • 处理javaweb中文乱码

    2017-10-18 23:11:05
    简单方法一步到位: 在jsp的最上部加上以下代码,编码方式自己适当更改就ok  import="java.sql.*"%>  request.setCharacterEncoding("utf-8"); %>
  • JavaWeb中文乱码解决方法

    千次阅读 2019-01-08 10:27:26
    当sevlet返回js脚本时弹出框显示中文乱码的解决方案: 可以在servlet中加上response.setContentType(“text/html;charset=utf-8”); servlet中用response有3种设置输出内容的编码方式: 1.response.setCharacter...
  • JavaWeb中文传值乱码解决方法

    千次阅读 2018-08-09 11:10:18
    在做JavaWeb时,总是时不时的会遇到中文传值乱码问题,在你把所有”ISO-8859-1”改成“UTF-8”发现还是没什么用。于是我就找到了一个百试百灵的方法(至少目前我是),就是强行转换成“UTF-8”编码。看代码: @...
  • 一、Content-Disposition 文件下载-文件名的中文乱码 1. response.setHeader ( "Content-Disposition","attachment;filename="+ java.net.URLEncoder.encode ( name,"utf-8" ) ) 2. response.setHeader(...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,640
精华内容 7,056
关键字:

javaweb中文

java 订阅