精华内容
下载资源
问答
  • 想要用什么样的字符集都是要根据要求来的,那如果你安装数据库时,默认的字符集是uft-8,但是现在我们需要用的字符集市gbk,那怎么办?OK,有办法,首先,找到MySQL安装目录下的my.ini文件打开,里面有两处需要你...

    想要用什么样的字符集都是要根据要求来的,那如果你安装数据库时,默认的字符集是uft-8,但是现在我们需要用的字符集市gbk,那怎么办?OK,有办法,首先,找到MySQL安装目录下的my.ini文件打开,里面有两处需要你改动字符集的地方(需要你自己细心去找,改成gbk)然后打开data文件夹,进入你想要进入的数据库,打开db.opt文件,改变成为统一的字符集(gbk),在然后,CREATE TABLE `voter` (

    `candidate` varchar(255) default NULL,

    `voter_name` varchar(255) default NULL,

    `voter_company` varchar(255) default NULL,

    `voter_country` varchar(255) default NULL,

    `ip_address` varchar(255) default NULL,

    `vote_time` varchar(255) default NULL

    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;

    比如此表,在最后面加上ENGINE=InnoDB DEFAULT CHARSET=gbk;你所建的表是否加了呢?如果你的程序出现 Data too long for column 'name' at row 1样式字段,就是没加,其实这个是关键,不管默认的字符集是什么,只要你建立库,建立表时,用的是什么字符集,它就是什么字符集了。OK,最后把你在代码中所看到的所有字符集都改变成为gbk,包括jsp页面,数据库类的uri里的,以及servlet里的(当前用model2进行的开发)。到此,以gbk字符集编码,就不会出现数据库中文乱码的情况了。

    阅读(358) | 评论(0) | 转发(0) |

    展开全文
  • first:排查原因:打断点,查看到底是在执行存数据库操作之前就已经乱码了,还是存数据库操作后乱码的。前者解决方案:在web.xml里面加上:encodingFilterorg.springframework.web.filter....

    first:

    排查原因:

    打断点,查看到底是在执行存数据库操作之前就已经乱码了,还是存数据库操作后乱码的。

    前者解决方案:

    在web.xml里面加上:

    encodingFilter

    org.springframework.web.filter.CharacterEncodingFilter

    true

    encoding

    UTF-8

    encodingFilter

    /*

    在配置jdbc数据源的时候加上:

    jdbc:mysql://127.0.0.1:3306/logistics?useUnicode=true&characterEncoding=UTF-8

    存数据库操作后乱码,解决方案:登录数据库,执行如下sql:

    show variables like 'character%';

    结果:

    | character_set_client     | utf8                                                   |

    | character_set_connection | utf8                                                   |

    | character_set_database   | latin1                                                 |

    | character_set_filesystem | binary                                                 |

    | character_set_results    | utf8                                                   |

    | character_set_server     | latin1                                                 |

    | character_set_system     | utf8                                                   |

    说明在安装数据库的时候,character_set_database,character_set_server编码格式设置错误。

    解决:

    找到mysql安装路径下的my.cnf文件在[mysqld]下添加如下两行:

    character_set_server=utf8

    init_connect='SET NAMES utf8'

    再次查看,问题解决:

    | character_set_client     | utf8                                                   |

    | character_set_connection | utf8                                                   |

    | character_set_database   | utf8                                                   |

    | character_set_filesystem | binary                                                 |

    | character_set_results    | utf8                                                   |

    | character_set_server     | utf8                                                   |

    | character_set_system     | utf8

    展开全文
  • debug跟踪发现,提交表单请求后,控制层中就出现中文乱码了,网上找了下解决方法 对于POST请求: 在web.xml中编辑 <!-- 中文乱码问题解决 只能解决post请求--> <filter> <filter-name>...

    debug跟踪发现,提交表单请求后,控制层中就出现中文乱码了,网上找了下解决方法
    对于POST请求:
    在web.xml中编辑

    <!-- 中文乱码问题解决  只能解决post请求-->
      <filter>
            <filter-name>encodingFilter</filter-name>
                <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
                <async-supported>true</async-supported>
                <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
                   </init-param>
               </filter>
                    <filter-mapping>
            <filter-name>encodingFilter</filter-name>
           <url-pattern>/*</url-pattern>
            </filter-mapping>
    

    如果有报错信息,百度一下就ok了,应该是要在
    头部增加以下内容

    <web-app xmlns:xsi="http://www.springmodules.org/schema/cache/springmodules-cache.xsd http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd"
    

    tomcat 的server.xml配置如下
    在这里插入图片描述
    可以解决get中文乱码问题

    why???

    post乱码:
    原因:

    对于POST方式,它采用的编码是由页面来决定的即ContentType(“text/html; charset=GBK”)。当通过点击页面的submit按钮来提交表单时,浏览器首先会根据ContentType的charset编码格式来对POST表单的参数进行编码然后提交给服务器,在服务器端同样也是用ContentType中设置的字符集来进行解码,这就是通过POST表单提交的参数一般而言都不会出现乱码问题。

    当然这个字符集编码我们是可以自己设定的:request.setCharacterEncoding(charset)设置编码,然后通过request.getParameter获得正确的数据。

    get乱码:
    原因:

    对于GET方式,我们知道它的提交是将请求数据附加到URL后面作为参数,这样依赖乱码就会很容易出现,因为数据name和value很有可能就是传递的为非ASCII码。

    当URL拼接后,浏览器对其进行encode,然后发送到服务器。具体规则见URL编码规则。

    tomcat服务器在进行解码过程中URIEncoding就起到作用了。tomcat服务器会根据设置的URIEncoding来进行解码,如果没有设置则会使用默认的ISO-8859-1来解码。假如我们在页面将编码设置为UTF-8,而URIEncoding设置的不是或者没有设置,那么服务器进行解码时就会产生乱码。

    这个时候我们一般可以通过new String(request.getParameter(“name”).getBytes(“iso-8859-1”),“utf-8”) 的形式来获取正确数据,或者通过更改服务器的编码方式: tomcat 设置中<Connector port="8080"protocol=“HTTP/1.1” maxThreads=“150” connectionTimeout="20000"redirectPort="8443"URIEncoding=“客户端编码”/> (默认是iso-8859-1)。

    服务器获取的数据都是ASCII范围内的请求头字符,其中请求URL里面带有参数数据,如果是中文或特殊字符,那么encode后的%XY(编码规则中的十六进制数)通过request.setCharacterEncoding()是不管用的。这时候我们就能发现出现乱码的根本原因就是客户端一般是通过用UTF-8或GBK等对数据进行encode的,到了服务器却用iso-8859-1方式decoder。

    部分数据源于网络,仅供学习记录使用,如有侵权请联系我删除

    展开全文
  • 可是由于项目的要求,注册时可以使用中文,当测试时,到数据库中查看居然乱码。曾经看传智的老贺讲web时,项目的结尾就是来探讨和学习这个乱码的问题。他提到过滤器的处理方法,可是自己学的不多,只会在在页面中...

           第一次开发一个小的项目,经验尚浅,每次测试数据库时,都是随便的输入几个英文字符就行了的,看看数据库中是否显示了,便当做完成任务了。可是由于项目的要求,注册时可以使用中文,当测试时,到数据库中查看居然乱码。曾经看传智的老贺讲web时,项目的结尾就是来探讨和学习这个乱码的问题。他提到过滤器的处理方法,可是自己学的不多,只会在在页面中加入字符编码的控制。现在谈谈我的这种麻烦的解决办法,希望对那些和我一样刚入门的菜鸟有些帮助!

    1.在你的jsp页面,也就是你打算提交啊数据到servlet的页面头部添加代码<% request.setCharacterEncoding("ISO8859_1");%>,并且将原来的jsp的页面的编码修改gb2123

    2.在你所提交的servlet页面设置编码 request.setCharacterEncoding("ISO8859_1");

    3.在servlet里面,对需要写入中文到数据库的的代码段下面都加上一行,例如

    String xxx= request.getParameter("xxx");
    xxx=new String(xxx.getBytes("ISO8859_1"),"gb2312");

    4.这样就可以了


    附一个servlet代码》》》》》》》

    package com.action.student;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Date;
    
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.dao.StuDao;
    import com.dao.UserDao;
    import com.test.md5;
    
    public class addStu extends HttpServlet {
    
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		request.setCharacterEncoding("ISO8859_1");
    		//测试: response.sendRedirect("index.jsp");
    		/*解决中文插入数据库乱码问题
    		 * 将提交的jsp(register.jsp)的<% request.setCharacterEncoding("ISO8859_1");%>
    		 * 在servlet中同添加request.setCharacterEncoding("ISO8859_1");
    		 * 在得到的中文String后,进行xxx=new String(xxx.getBytes("ISO8859_1"),"gb2312");处理
    		 */
    		String name = request.getParameter("name");
    		name=new String(name.getBytes("ISO8859_1"),"gb2312");
    		String num1 = request.getParameter("num1");
    		String num2 = request.getParameter("num2");
    		//为了区别关键字class-->klass
    		String klass = request.getParameter("class");
    		String post = request.getParameter("post");
    		post=new String(post.getBytes("ISO8859_1"),"gb2312");
    		String partynum = request.getParameter("partynum");
    		partynum=new String(partynum.getBytes("ISO8859_1"),"gb2312");
     		//测试:System.out.println(partynum);
    		String both =  request.getParameter("both");
    		String school = request.getParameter("school");
    		String graduate = request.getParameter("graduate");
    		String dorm = request.getParameter("dorm");
    		
    		if (num1.equals(num2)) {
    			StuDao stu = new StuDao();
    			if (stu.findStu(name, num1) != null) {
    				// response.sendRedirect("index.jsp");
    				System.err.println("用户已存在!");
    				request.getRequestDispatcher("adderror.jsp").forward(request,
    						response);
    			} else {
    				md5 md =new md5();
    				num1 = md5.string2MD5(num1);
    				//測試是否加密成功System.out.println(num1);
    				int i = stu.addStu(name, num1,klass,post,partynum,both,school,graduate,dorm);
    				if (i < 0) {
    					request.getRequestDispatcher("adderror.jsp").forward(
    							request, response);
    				} else {
    					response.sendRedirect("index.jsp");
    				}
    
    			}
    
    		} else {
    
    			System.out.println("密码不一致");
    			request.getRequestDispatcher("adderror.jsp").forward(request,
    					response);
    		}
    
    	}
    
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doGet(request, response);
    
    	}
    
    }
    

    展开全文
  • 大三JAVA初学者。 遇到了一个问题 web项目通过网页端的链接更新数据库时中文...如果在单独的Getnews类里执行main,写入数据库也正常,但是通过网页端执行该方法就会乱码,求大神指教。数据库编码我都设置的UTF-8。 ...
  • 解决中文乱码web项目配置连接mysql数据库时的注意事项 在使用搭建的SSM框架进行数据的CRUD操作时,出现了中文字符无法正确传递至后台,并写入数据库中的数据为“???”的形式,前端显示也为乱码形式 一、,配置...
  • 出现问题之前的db.properties文件 jdbc.driver=...jdbc.url=jdbc : mysql : //localhost : 3306/db_garbage_collection jdbc.username=root ...并且在创建数据库的时候,注意后面两个的格式,必须完全一样
  • 做一个ssm框架的项目,数据库用的是MySQL,当中遇到一个中文乱码问题,向数据库里面存的中文变成??,但是手动添加到数据库中的中文取出来又是显示正常的。 查了很多资料,终于解决了,说下思路: 乱码问题出现的情况有...
  • web.config中加入下面的幾行:<configuration> <system.web> <globalization requestEncoding="big5" responseEncoding="big5" fileEncoding="big5"/> </system.web></configuration...
  • 天用vs2008和SqlServer2005配合做了一个简单的修改数据库中数据的时候,但是在往数据库写入中文的时候却出现了乱码写入英文或其他类型的数据都显示正常。于是我就Google了一下,出来了很多的解决方案,大都是...
  • Java是个好东西,写JAVA的感觉就是爽,可是在用到JAVA与数据库的时候,多半都会出现乱码的问题,特别是中文字符总是被强奸成为“?”,看到心理面多多少少有点难受。这也是我们被老外欺负,就因为这个软件是他们写的...
  • 在使用MySQL5.7时,会发现通过web端向数据库写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?下面小编就为大家介绍解决mysql5.7乱码简单粗暴的方法。方法(1)....
  • 在浏览器向服务端写中文时,服务端可以正常接收到中文,但是通过jdbc将接收到的中文写入到mysql数据库时,在数据库命令行查询的中文都是显示两个?,是什么原因呢?而且通过数据查询出来的打印在控制台和页面上也是...
  • 所以我就记住了两个常用的解决java中文乱码问的语句,如下图 2.在解决一些问题之后,发现这两句话还不够,在java web中发现:网页会乱码,在eclipe中设置了好多的utf-8的编码格式都没用,解决方法就是设置浏览器...
  • Java Web开发的初学者最头疼的莫过于中文乱码的问题,不管如何设置编码方式,总会有乱码出现,本文主要针对web中的get请求,如果携带的参数是中文的话,写入数据库将会是乱码,当然有很多种方式可以解决,但简单的就...
  •  那么很明显问题就出现在数据写入数据库的过程之中了(数据库设置的编码格式也是对的情况下)。要是你SSH框架或者SSM框架开发,那么就要看 看数据库配置文和您的项目里的其他使用到数据库的连接的代码是否是如下这....
  • 昨天做项目时需要写入中文数据库,但是写进去后乱码。。。。跟着网上的流程走了一遍,,,,还是没有找到。。。 别人看我的配置的时候才发现我这里多了一个utf-8后面多了一个"   泪崩~~~~ 下面简介...
  •  那么很明显问题就出现在数据写入数据库的过程之中了(数据库设置的编码格式也是对的情况下)。要是你SSH框架或者SSM框架开发,那么就要看 看数据库配置文和您的项目里的其他使用到数据库的连接的代码是否是如...
  • python开发web项目,使用flask_sqlachemy连接db2,写入数据库出现中文乱码
  • 昨天用asp.net2.0和sqlserver2005配合做了一个简单的留言本,但是在往数据库写入中文的时候却出现了乱码写入英文或其他类型的数据都显示正常。于是我就google了一下,出来了很多的解决方案,大都是设置网站的...
  • 參考:http://shareideas.blog.51cto.com/362642/71946 昨天用asp.net2.0和SqlServer2005配合做了一个简单的留言本,但是在往数据库写入中文的时候却出现了乱码写入英文或其他类型的数据都显示正常。于是我就...
  • 在使用mysql5.7时,会发现通过web端向数据库写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对MySQL的数据编码过程和原理进行讲解,如果有兴趣的同学...
  • 在使用mysql5.7时,会发现通过web端向数据库写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对mysql的数据编码过程和原理进行讲解,如果有兴趣的同学...
  • java中文乱码问题

    千次阅读 2012-10-04 16:52:43
    java编程的初学者几乎都遇到过中文乱码问题,乱码的形式多种多样:写入文件中的中文在再次打开后显示乱码、写入数据库中的中文在再次读取时显示乱码、在Web表单中填写的中文一旦提交到服务器端便显示乱码、在开发...

空空如也

空空如也

1 2 3
收藏数 59
精华内容 23
关键字:

web写入数据库中文乱码