tomcat的编码设置

tomcat中文问题的解决

第一,存文件必须以一种编码存;读文件也必须以一种编码读,如不特别设置,去系统默认的编码,中文windows为GBK编码。

从.java->.class过程是,先编写.java文件并按莫种编码方式保存,然后用javac方法编译此文件,注意如.java没按系统默认编码保存则要带encoding参数指明实际编码,否则出错,生成的.class文件存为系统默认编码。

从.jsp->.java->.class,先存为某种编码的.jsp文件,然后tomcat根据pageEncoding读取并转化为servlet存为系统默认编码,然后同上面.java->.class过程。

第二,IDE的encoding为对系统下文件打开的解码方式或保存的编码方式。特例:如果.jsp文件有,则eclipse会自动存为UTF-8方式,不管eclipse的encoding是什么,这也是eclipse的聪明之处。

第三,

pageEncoding="UTF-8"表示此文件的编码方式,必须与此文件存储方式一致(所以eclipse会首选根据它来存文件),tomcat根据这个来读此.jsp文件并编译为servlet。

contentType="text/html;charset=UTF-8"表示当浏览器得到此文件时以什么方式解码。例如:

test

我是个好人

会产生乱码,因为存为UTF-8的文件被解码为iso8859-1,这样 如有中文肯定出乱码。

至此,页面应为:

中文问题

第四,

request.setCharacterEncoding("UTF-8")是把提交内容的字符集设为UTF-8

response.setCharacterEncoding("UTF-8")可以把页面中的换为charset=UTF-8,是给告诉浏览器我这个文件的编码方式。

第五,表单提交:无论何种表单提交都可以在后台的java文件中通过String des = new String(s.getBytes("iso8859-1"),"UTF-8");来转换成你想要的UTF-8编码方式。但如果每处都加词句太麻烦,故分post和get两种方式区分提交(tomcat5以后分开处理,之前处理方式一样,即都可以用request.setCharacterEncoding("UTF-8")方法处理,不过tomcat5以后get提交方法用此语句无效)。

1,post提交的数据:

程序加上org.springframework.web.filter.CharacterEncodingFilter过滤器.

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF8

forceEncoding

true

encodingFilter

*.html

encodingFilter

*.jsp

因为规范要求浏览器提交数据都要用utf8编码,所以这里设置编码方式为UTF8.

特别注意:

a,这个过滤器只是简单的调用:request.setCharacterEncoding(this.encoding);

在这个语句之前不能调用任何的request.getParameter()方法,否则会设置tomcat的缺省字符集为"ISO-8859-1",并且使setCharacterEncoding的调用失效.所以在这个过滤器之前的过滤器中不能有对getParameter这类方法的调用,比较安全的做法就是把这个过滤器尽量靠前放.

b,在server.xml中不能加上

这个value也设置tomcat的缺省字符集为"ISO-8859-1",使setCharacterEncoding的调用失效.可能其他的value也有这个问题,我没有测试过.

如果要观察http请求参数,可以考虑用过滤器或者其他工具,例如ethereal([url]http://www.ethereal.com/[/url])

2,get提交的数据:

两种情况:

a,如果从地址栏直接输入汉字,则一般编码为"GBK",需要用

new String(request.getParameter("something").getBytes("ISO-8859-1"),"GBK")

取出

b,如果是页面超连接连接中带的汉字,则编码根据页面编码的不同而不同,如果页面的

content="text/html; charset=utf-8",则在tomcat/conf/server.xml中的配置文件中:

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"

disableUploadTimeout="true" />

加上:useBodyEncodingForURI="true"即可正常使用getParameter取出正确内容.

如果content="text/html; charset=GBK",需用

new String(request.getParameter("something").getBytes("ISO-8859-1"),"GBK")

取出,其他情况类似.

总结:

1,所有页面使用utf8编码,

2,服务器加上过滤器,

3,server.xml中不要使用

4,server.xml文件加上useBodyEncodingForURI="true"

这样应该可以搞定大多数前台的中文问题.至于地址栏输入中文,不支持也罢,一般的程序很少要求

从这里输入.

第六,连接数据库

1、mysql配置文件:

修改mysql在windows\my.ini里default-character-set=utf-8

2、mysql里数据库和表也都设为utf8_unicode_ci

3、数据库连结:jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf-8

注意,关键就在于此:此句中间是'&'不是'&'这是因为数据库连结时,在.jsp和.java文件中应该用&号,而XML文件中需要用&

对于Web容器来说,如果你不设置,默认是ISO8859-1

String des = new String(s.getBytes("iso8859-1"),"UTF-8");都可以使用这个 不论哪里,有乱码就是用

tomcat编码配置gbk_tomcat的编码设置 tomcat中文问题的解决相关推荐

  1. mac模式怎样构造在jsp中_mac下tomcat的配置和jdk的设置 jsp的初级知识

    在mac下,jdk下载好,解压安装后,系统就自动为你配置好环境变量了 tomcat的配置,在tomcat的官网http://tomcat.apache.org/直接下载tomcat 9压缩包 随后配置 ...

  2. tomcat修改http长度限制_设置tomcat nginx上传文件大小限制

    一.关于在tomcat在server.xml的配置文件上传大小20M的限制 – maxPostSize="20971520″ 二.在nginx的nginx.conf的配置文件上传大小为20M ...

  3. tomcat环境配置以及cmd下启动tomcat

    下载tomcat 进入tomcat官网选择版本 tomcat环境变量 在系统变量中新建下面俩个变量 CATALINA_BASE     tomcat安装目录D:\tomcat CATALINA_HOM ...

  4. aptio设置全中文_aptio setup解决步骤

    建议恢复出厂默认BIOS设置,恢复方法:在BIOS界面中,按F9进行恢复,回车,F10保存,回车,计算机将自动重启,恢复值 默认情况下BIOS完成. 然后启动,最后. 是BIOS输入界面. 如果是引导 ...

  5. tomcat安装配置及应用

    tomcat安装配置及应用 一.tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调 ...

  6. linux tomcat 进程杀掉_Linux下tomcat的配置踩坑

    前言 在配置微信公众号开发的过程,可以参照我的上一篇文章(后来使用Java开发的我表示很鸡肋,虽然配置好了,但是不知道接下来该怎么继续).然后就想起了Windows下Java学习过程中使用过的tomc ...

  7. 阿里云ECS(Windows)+Tomcat+GeoServer配置

    阿里云ECS(Windows)+Tomcat+GeoServer配置 文章目录 阿里云ECS(Windows)+Tomcat+GeoServer配置 1.简介 2.本地电脑与云端系统的远程连接 3.T ...

  8. Tomcat基本配置详解

    Tomcat基本配置详解 1.Tomcat的启动与关闭 ​ Tomcat是基于Java开发的,所以在运行Tomcat是必须配置了jre (1)启动 在Tomcat的bin目录下startup.bat( ...

  9. 设置tomcat服务器编码为utf-8编码

    问题描述: 因为测试环境出现了一点错误,日志并未发现报错信息,需要在本地链接测试环境数据库查看问题. 在测试环境出现的数据,在本地不显示,打断点发现是传入的数据乱码了,于是需要在接收数据的服务器上面设 ...

  10. 设置Tomcat编码

    设置Tomcat编码 <Connector         port="8080"         maxThreads="150"         mi ...

最新文章

  1. JQuery中的事件以及动画
  2. java thread参数传递_将参数传递给Java Thread
  3. 【论文阅读记录】Real-Time Correlative Scan Matching
  4. linux下搭建lua开发环境
  5. MY MOBILER v1.23 - 类似SOTI Pocket Controller的免费工具
  6. Java基础笔记 – 枚举类型的使用介绍和静态导入
  7. C#如何使用httpwebrequest通过代理访问网页
  8. 数字图像处理 冈萨雷斯 (第四版) 比特平面分层,图像重建
  9. C语言学习阶段性总结!(内附超详知识导图+重点知识详解)
  10. Opencv项目实战:03 扫描二维码条形码
  11. 关于计算机高中英语作文,关于电脑的高中英语作文:Computers
  12. PHP实现sha-256哈希算法
  13. arp命令--arping
  14. Python求最小公倍数和最大公约数(附加辗转相除)
  15. 熬夜读完这份高分宝典,四面字节之后成功拿下
  16. 2022年数据库审计产品排行榜-必看!
  17. 易语言单窗口单ip教程_怎样设置单窗口单ip登录游戏账号
  18. 傅里叶变换中的特征函数以及一些冲激函数的性质
  19. IKAnalyzer配置扩展词库经验总结
  20. 如何编写一个自动投票程序

热门文章

  1. 计算机软件系统验收标准,软件相关标准目录.xlsx
  2. 2018 Multi-University Training Contest 10 hdu 6432 Problem G. Cyclic(oeis题)
  3. 25个超适合学生党的0成本兼职,自我增值的最有效方式
  4. 教你怎么学JAVA+Java入门项目(可以收藏)
  5. excel随机数_Excel小技巧之随机数表
  6. 商品图像识别是什么?如何实现图像识别呢?
  7. qca9533的TPlink wr841N换openwrt固件的一点体会
  8. 自己搭建手游服务器端数据修改,自己架设服务器玩手游
  9. VB2010(17)_消息对话框MessageBox
  10. Keil(C51)的安装与注册