1、get方法提交表单,后台出现中文乱码问题 (注明:web.xml中的编码设置只是针对post请求)
在eclipse中,找到tomcat的目录,在这个目录下面 omcat61-32 omcat61conf,找到server.xml
打开文件,找到这一行 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
将其修改成这样 <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
最后清理服务器缓存
(如不行,更改tomcat原始路径的配置)
注:配置useBodyEncodingForURI="true"后,可以解决普通get请求的中文乱码问题
但是对于通过ajax发起的get请求中文依然会乱码,请把useBodyEncodingForURI="true"改为URIEncoding="UTF-8"即可
2、Js的数组排序sort(),默认使用字母数字(字符串的Unicode码)排序。例如:[1,2,5,10].sort()会输出 [1,10,2,5] 。正确的排序可用 [1,2,5,10].sort(a,b)
3、JSp使用include标签包含子页面时出现乱码。方法:在子页面的顶部加入:<%@page pageEncoding="UTF-8"%>
4、Linux的权限读取文件,java往服务器上上传文件后,再次登录就没有权限了。
5、写接口调试的时候,浏览器查看乱码,解决办法:
1.通过代码查看当前电脑的编码类型System.out.println(System.getProperty("file.encoding")); 或者 System.out.println(Charset.defaultCharset());,任意选一种即可。
2.response.setCharacterEncoding("utf-8");//第一句,设置服务器端编码
response.setContentType("text/html;charset=utf-8");//第二句,设置浏览器端解码
6、linux系统下mysql表名区分大小的问题:
1、数据库名与表名是严格区分大小写的;2、表的别名是严格区分大小写的;3、列名与列的别名在所有的情况下均是忽略大小写的;4、变量名也是严格区分大小写的; 注:MySQL在Windows下都不区分大小写。
可以查看Linux上的MySQL的配置文件/etc/my.cnf ,就需要在[mysqld]下面添加一行配置,即 lower_case_table_names=1: (其中 0:区分大小写,1:不区分大小写)
[root@VM_219_131_centos tomcat7]# vi /etc/my.cnf [mysqld] lower_case_table_names=1 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
补:如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY );
B、使用alter修改:
ALTER TABLE`tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
C、mysql table编辑时中直接勾选BINARY项。
修改完后,一定记得重启数据库。
[root@VM_219_131_centos tomcat7]# service mysqld restart
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]