修改Tomcat编码方式的两种方法
Javaweb中常见编码乱码问题(一)
Javaweb中常见编码乱码问题(⼀) 最近在看Java web中中⽂编码问题,特此记录下。
本⽂将会介绍常见编码⽅式和Java web中遇到中⽂乱码问题的常见解决⽅法:⼀、常见编码⽅式: 1、ASCII 码 众所周知,这是最简单的编码。
它总共可以表⽰128个字符,0~31是控制字符如换⾏、回车、删 除等,32~126是打印字符,可以通过键盘输⼊并且能够显⽰出来的。
2、ISO-8859-1 它是基于ASCII码基础上扩展的,它总共能表⽰256个字符,涵盖了⼤多数西欧语⾔字符。
详见 该编码不⽀持中⽂,举个中⽂编码栗⼦: 字符串“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来相互翻译,详解) 6、UTF-8 由于UTF-16统⼀采⽤两个字节来表⽰⼀个字符,有很多字符⽤⼀个字节表⽰即可。
所以存储空间放 ⼤了⼀倍,还会增加⽹络传输的流量,所以推出了UTF-8。
UTF-8采⽤了⼀种变长技术,每个编码区域有 不同的字码长度。
通过上⾯介绍和对⽐,对于中⽂字符的处理我想UTF-8是最理想的中⽂编码。
修改Tomcat的编码方式
今天做一个简单的在线音乐播放器,使用的是标签,但是出现一个问题,即中文音乐文件无法访问。
开始以为是embed标签的问题。
但是以前写过一个静态页面就是使用了中文名称。
另外还有一个现象是,
即使将音乐文件直接放在tomcat的WebRoot目录下,通过浏览器都无法访问,使用迅雷也无法下载。
所以就想到了是Tomcat的问题了。
默认情况下,tomcat使用的是iso8859-1的编码编码方式,浏览器的embed标签中src指向的地址要通过tomcat去解析。
如果包含中文,采用这种编码方式就会出现乱码问题,而在这种情况下,乱码问题就表现出无法访问该音频文件了。
解决方法很简单:
修改tomcat下的conf/server.xml文件,找到如下代码:
connectionTimeout="20000"
redirectPort="8443" />
这段代码规定了Tomcat监听HTTP请求的端口号等信息。
可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求。
更改后的代码如下所示:
URIEncoding="UTF-8"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />。
katalon的编码格式 -回复
katalon的编码格式-回复标题:深入理解Katalon的编码格式Katalon是一款强大的自动化测试工具,它支持多种编程语言和编码格式,使得测试人员能够更加灵活和高效地进行自动化测试。
在本文中,我们将详细探讨Katalon的编码格式,包括其主要特性、使用方法以及最佳实践。
一、Katalon的编码格式概述Katalon Studio默认使用Groovy语言进行脚本编写,Groovy是一种基于Java平台的动态编程语言,其语法简洁、灵活,且与Java高度兼容。
因此,Katalon的编码格式主要是Groovy的编码规则。
Groovy的编码格式遵循一般的编程规范,包括但不限于以下几点:1. 使用UTF-8字符集:这是互联网上最常用的字符集,能够支持全球大多数语言的字符。
2. 采用四个空格作为缩进:这是一般的代码风格规范,可以提高代码的可读性。
3. 使用驼峰命名法:对于变量、函数和类的命名,通常采用驼峰命名法,即首字母小写,后续单词首字母大写。
4. 注释的使用:Groovy支持单行注释()和多行注释(/* */),用于解释代码的功能和逻辑。
二、Katalon编码格式的实际应用在Katalon Studio中,我们可以利用Groovy的编码格式来编写各种测试脚本。
以下是一个简单的示例,展示如何使用Katalon的编码格式来编写一个Web UI测试脚本:groovyimport staticcom.kms.katalon.core.testcase.TestCaseFactory.findTestCase import staticcom.kms.katalon.core.testdata.TestDataFactory.findTestData import staticcom.kms.katalon.core.testobject.ObjectRepository.findTestObject importcom.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobileimportcom.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI定义测试数据def testData = findTestData('TestData/ Login Data')循环遍历测试数据for (def row : testData.getRows()) {获取测试对象def usernameField = findTestObject('ObjectRepository/Page_Login/input_Username')def passwordField = findTestObject('ObjectRepository/Page_Login/input_Password')def loginButton = findTestObject('ObjectRepository/Page_Login/button_Login')输入用户名和密码WebUI.setText(usernameField, row['username'])WebUI.setText(passwordField, row['password'])点击登录按钮WebUI.click(loginButton)验证登录成功def successMessage = findTestObject('ObjectRepository/Page_Home/text_Success_Message')WebUI.verifyElementText(successMessage, 'Login successful!') }在这个示例中,我们首先导入了Katalon的内置关键字,然后定义了测试数据,并使用for循环遍历每一行测试数据。
Tomcat端口修改、默认主页的重定向、默认主页修改
当我们安装好Tomcat之后我们可以看到这个文档conf里面就是关于对Tomcat的各种配置文件,其中server.xmxxxxl和web.xmxxxxl是2个重要的配置文件,下面我主要讲下我们平时常用端口修改、默认主页的重定向和默认主页修改3个功能。
端口修改:用记事本打开server.xmxxxxl,这时我们可以按键盘Ctrl+F打开文本搜索框,输入port向下搜索,因为tomcat的默认的端口是8080,所以我们可以找到port=“8080”的语句,<Connector port="8080" protocol="HTTP/1.1"和port="8080" protocol="HTTP/1.1",我们只要修改引号内的8080为我们要修改的端口即可。
默认主页的重定向:用记事本打开server.xmxxxxl,找到</host>这个标签,一般在这个文档的后面几行,也可以通过文本搜索查找,我们要在</host>的前面另起一行,在新的行里插入标签:<Context path="" docbaxxxxse="C:\Tomcat 7.0\webapps\class" debug="0"/> docbaxxxxse的值是你要显示的那个网站的完整路径。
默认主页修改:用记事本打开web.xmxxxxl,找到</welcome-file-list>这个标签,这时我们可以看到一些值如:<welcome-file>index.jsp</welcome-file>这个标签就是当没有指定打开哪个网页文档时tomcat会默认查找该目录下的index.jsp这个文件,这时我们可以模仿它插入自己想要修改的默认主页。
IDEA中Web项目控制台乱码的问题及解决方法
IDEA中Web项⽬控制台乱码的问题及解决⽅法要分清是tomcat⽇志编码乱码,还是idea的⽇志显⽰控制台编码乱码⼀、tomcat⽇志编码# 切换到tomcat根⽬录/bin# 分别执⾏# 1、"chcp 65001"切换cmd为utf8,chcp 65001catalina.bat run# 2、"chcp 936"切换cmd为gbk,chcp 936catalina.bat run# 哪种模式不乱码,就可以确定tomcat⽇志编码⼀般/conf/logging.properties 中的java.util.logging.ConsoleHandler.encoding 已设置为utf-8【切忌】⾃⼰改tomcat的logging.properties 为GBK 会导致调试时会get/post参数乱码⼆、idea显⽰编码windows默认⽤gbk所以idea显⽰默认为gbk编码,控制台乱码问题⼀般都是WIndows⽤的GBK,⽽Tomcat是utf-8,导致乱码。
所以需要强制idea显⽰编码为UTF-8。
在 Help-- custom vm options 添加-Dfile.encoding=UTF-8,强制为utf8编码显⽰,不要⾃⼰改.vmoptions可能位置不对。
我这样设置过后控制台就不乱码了。
PS:解决Mybatis配置⽆法扫描java⽬录⽂件下的xml⽂件IDEA创建Maven项⽬会⾃动⽣成java和resources两个⽬录,当我们进⾏mybatis配置时,默认会可以访问到resource⽬录下的xml⽂件,但⽆法访问java⽬录⽂件夹下都xml⽂件。
因此MyBatis⾃动扫描包下的Mapper会报错,因此添加如下语句让IDEA识别xml⽂件解决办法:在pom.xml中添加<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>总结到此这篇关于IDEA中Web项⽬控制台乱码的⽂章就介绍到这了,更多相关IDEA控制台乱码内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
Tomcat中文乱码解决方法
Tomcat 中文乱码解决方法一、通过contentType、pageEncoding或response.setCharacterEncoding设置网页编码(如utf-8、gb2312、gbk或其它编码)。
比如(以gbk为例):<%@ page contentType="text/html;charset=gbk" %>或: <%@ page pageEncoding="gbk" %>或: <% response.setCharacterEncoding ("gbk"); %>二、然后根据以下情况进行具体设置(以下各情况的设置互不关联):◆POST数据的接收只需在接收数据的jsp文件中设置request的字符编码格式为当前POST数据的网页编码,例如:<% request.setCharacterEncoding("gbk"); %>◆GET数据和URL数据(如超链接)的接收只需在Tomcat配置文件server.xml的Connector标签中设置useBodyEncodingForURI为true,或者设置URIEncoding为提交数据的网页编码。
例如:<Connector port="8080" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true"useBodyEncodingForURI="true" 或URIEncoding="gbk" />如果采用useBodyEncodingForURI="true",则需要在接收数据的jsp文件中设置request的字符编码格式为当前网页编码,例如(设当前网页编码为gbk):<% request.setCharacterEncoding("gbk"); %>※URIEncoding参数会影响到所有应用,故推荐设置useBodyEncodingForURI为true的方式接收数据。
tomcat设置编码格式utf8
tomcat设置编码格式utf8利⽤request.setCharacterEncoding("UTF-8");来设置Tomcat接收请求的编码格式,只对POST⽅式提交的数据有效,对GET⽅式提交的数据⽆效!要设置GET的编码,可以修改server.xml⽂件中,相应的端⼝的Connector的属性:URIEncoding="UTF-8",这样,GET⽅式提交的数据才会被正确解码。
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" />tomcat8以后默认编码格式是utf-8;7之前的都是iso8859-1如果默认情况下,tomcat使⽤的的编码⽅式:iso8859-1修改tomcat下的conf/server.xml⽂件找到如下代码:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />这段代码规定了Tomcat监听HTTP请求的端⼝号等信息。
可以在这⾥添加⼀个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求。
修改完成后:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />⼀:form在前台以post⽅式提交数据:浏览器将数据(假设为“中国”)发送给服务器的时候,将数据变成0101的⼆进制数据(假设为98 99)时必然要查码表,浏览器以哪个码表打开⽹页,浏览器就以哪个码表提交数据。
IDEA下tomcat启动后server乱码,TomcatCatalinaLog乱码问题的解决
IDEA下tomcat启动后server乱码,TomcatCatalinaLog乱码问题的解决⼀、前⾔
不改的话,不影响使⽤,因为报错基本都是英⽂显⽰的。
但是这⼏个中⽂字乱码的看着难受。
乱码的根本原因:
Windows系统的cmd是GBK编码的,所以IDEA的下⽅log输出的部分的编码也是GBK的,然⽽Tomcat 9.0 版本默认log输出是UTF-8编码的,采⽤了两种不同的编码⽅式就会导致乱码。
⼆、解决⽅案(推荐使⽤⽅法2)
⽅法1:修改Tomcat ⽇志输出为GBK编码,与系统CMD匹配
先打开tomcat的安装⽬录
编辑 conf ⽬录下的 logging.properties
⽤notepad++ 打开,把⾥⾯的UTF-8 通通改成 GBK,⼤家都是GBK编码,那就不会乱码了
保存,重启Tomcat,即可⽣效。
⽅法2:修改IDEA运⾏环境为UTF-8编码
点击顶部--帮助--编辑⾃定义VM选项
然后把UTF-8加进去
-Dfile.encoding=UTF-8
最后⼀步,把Tomcat也指定UTF-8
编辑 Tomcat运⾏配置
在虚拟机选项中加⼊ -Dfile.encoding=UTF-8
改完之后,重启IDEA即可。
securecrt script 修改 编码
securecrt script 修改编码
SecureCRT是一款常用的终端仿真软件,支持SSH、Telnet、Serial 等协议,常用于远程登录和管理服务器。
有时,我们可能需要对SecureCRT的脚本进行修改,包括修改脚本中的编码方式。
在SecureCRT中,脚本文件的默认编码方式是UTF-8。
如果我们需要修改脚本文件的编码方式,可以按照以下步骤进行操作:
1. 打开SecureCRT软件,在菜单栏上选择“文件”->“打开”。
2. 在弹出的对话框中,选择需要修改的脚本文件,点击“打开”。
3. 此时,SecureCRT会自动将脚本文件加载到编辑器中。
4. 在菜单栏上选择“工具”->“选项”。
5. 在弹出的对话框中,选择“会话选项”->“文本”->“文件”。
6. 在右侧的选项卡中,可以看到“编码”选项,点击下拉框,选择需要修改的编码方式,如“UTF-8”、“GB2312”等。
7. 点击“确定”按钮,保存设置。
8. 再次打开脚本文件时,SecureCRT会自动使用新的编码方式打开文件。
需要注意的是,修改脚本文件的编码方式可能会影响到脚本的正常运行。
因此,在修改编码方式之前,建议备份原始脚本文件,并确保新的编码方式与脚本中的内容兼容。
tomcat项目编译
tomcat项目编译
要编译Tomcat项目,需要按照以下步骤进行操作:
1. 确保已经安装好Java Development Kit(JDK)并设置好JAVA_HOME环境变量。
2. 下载Tomcat源代码(通常以压缩包形式提供),并解压到本地目录。
3. 打开命令行窗口,进入Tomcat源代码的根目录。
4. 运行以下命令编译Tomcat项目:
```shell
ant
```
Ant是一个构建工具,用于自动化编译Java项目。
在运行上述命令之前,确保已经安装好Ant,并将其路径添加到环境变量中。
5. 等待编译过程完成。
一旦编译成功,Tomcat的可执行文件将生成在输出目录中。
请注意,以上步骤以最基本的方式编译Tomcat项目。
根据具体情况,可能需要进一步配置构建文件(如build.xml)或进行其他操作。
建议参考Tomcat的官方文档以获得更详细的编译说明。
修改Tomcat运行时jvm编码问题
修改Tomcat运⾏时jvm编码问题
问题:
最近在部署项⽬的时候出现数据乱码的情况,经过⼀番查看项⽬都是⽤的UTF-8编码格式,数据也是,但是经过调⽤接⼝传给对⽅就乱码了。
由于是部署在Windows环境下,Windows默认编码GBK,这就导致了jvm运⾏时编码不⼀致的问题,修改也很容易。
解决办法:
Linux环境下如果使⽤的UTF-8编码,可以不⽤修改,因为Linux默认为UTF-8
war包部署在Tomcat
修改jvm编码
Linux环境
在catalina.sh配置
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=utf-8"
由于Windows环境下默认的编码格式为GBK,所以要修改Tomcat运⾏时编码格式。
Windows环境
在catalina.bat配置
set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8
如果是jar包部署,只需要在启动命令加⼊jvm参数即可。
jar包部署
启动命令加⼊jvm参数
java -Dfile.encoding=UTF-8 -jar xxx.jar
总结
以上所述是⼩编给⼤家介绍的修改Tomcat运⾏时jvm编码问题,希望对⼤家有所帮助!。
Tomcat字符编码的常见问题
Tomcat字符编码的常见问题1.默认的字符编码是什么?如果没有指定字符编码,Servlet规范规定使用ISO 8859-1作为默认的编码。
2.我怎样改变GET方法的解析?在server.xml中的Connector中指定URIEncoding参数。
3.我怎样改变POST方法的解析?POST请求需要指定它发送的参数和值的编码,因为大多数客户端可能没有设置一个明确的编码,默认使用的是ISO 8859-1。
大多数情况下它可能不是我们希望的编码,因此可以使用一个javax.servlet.Filter来改变编码。
Tomcat已经提供了完成这个功能的过滤器的例子。
请参看:4.xwebapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java5.xwebapps/servlets-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.javawebapps/jsp-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java6.xwebapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java4.我如何测试我配置工作正常?下面这个JSP代码能够工作在一个没做任何改变新安装的Tomcat上。
如果你设置了URIEncoding="UTF-8",它也能工作在GET方式上。
<%@ page contentType="text/html; charset=UTF-8" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Character encoding test page</title></head><body><p>Data posted to this form was:<%request.setCharacterEncoding("UTF-8");out.print(request.getParameter("mydata"));%></p><form method="POST" action="index.jsp"><input type="text" name="mydata"><input type="submit" value="Submit" /><input type="reset" value="Reset" /></form></body></html>5.我如何在HTTP Header中发送高位字符?你必须在插入到header之前使用某种方式对其编码。
遇到的问题之“解决tomcat中文乱码问题”
遇到的问题之 “解决 tomcat中文乱码问题 ” 方案 1:在 server.xml中添加了 URIEncoding="UTF-8" 属性
路径:C:\stop\apache-tomcat-8.5.69\conf方案3
方案 3:将 logging.properties文件中的 UTF-8 改为 GBK
java.util.logging.ConsoleHandler.encoding = GBK
路径:C:\stop\apache-tomcat-8.5.69\conf 修改内容
附 加 : 如 果 你 使 用 了 GBK汉 字 内 码 扩 展 规 范 依 旧 无 效 可 以 尝 试 换 成 UTF-8( GBK规 则 包 含 全 部 中 文 字 符 , UTF-8是 针 对 Unicode的 一 种 可 变 长 度 字 符 编 码 。 它 可 以 用 来 表 示 Unicode标 准 中 的 任 何 字 符 )
如若方案1不行请使用方案2
方案 2:在 catalina.bat文件中加入 set JAVA_OPTS=-Xms512m Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8
路径:C:\stop\apache-tomcat-8.5.69\bin 修改内容
tomcat:中文乱码之URIEncoding=“GBK”
tomcat:中⽂乱码之URIEncoding=“GBK”在项⽬中遇到⼀个问题就是我的jsp页⾯也有:<%@ page language="java" contentType="text/html;charset=UTF-8"%>后台采⽤spring,在web.xml⽂件中也设置了编码:<!-- 设置编码格式 --><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>但是后台接收到的中⽂还是报错了,因为我是⽤easyui的combobox发送的,虽然设置是post的⽅式,但是参数还是接在URL的后⾯传到后台,这个时候就发现,这个中⽂出现了乱码,在⽹上搜索了很多答案也没有发现有⽤的信息,最终总结如下:找到server⽂件夹下的server.xml,打开,然后找到你的项⽬端⼝,加上URIEncoding=“GBK”,完成~。
myeclipse修改乱码(编码格式修改)
myeclipse修改乱码(编码格式修改)一、设置新建常见文件的默认编码格式,也就是文件保存的格式。
在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码一致,即GBK。
在简体中文系统下,ANSI 编码代表GBK编码;在日文操作系统下,ANSI 编码代表JIS 编码。
Window-->Preferences-->General -->content Types在右侧窗口中展开每一个子项,依次输入编码格式,如“UTF-8”点击“update”就设置好了。
例如:在以上设置中,设置jsp默认编码格式为“UTF-8”,那么以后新建的jsp文件,都是以“UTF-8”的格式保存的。
同样设置java默认编码格式为“UTF-8”,那么以后新建的java文件,都是以“UTF-8”的格式保存的。
设置html默认编码格式为“UTF-8”,那么以后新建的html文件,都是以“UTF-8”的格式保存的。
以上设置了文件的保存编码格式,默认的打开方式(解码方式)会跟保存编码格式一样。
二、设置新建其他文件的默认编码格式,即文件保存格式。
在第一项设置中,只是设置了常用文件类型的编码格式。
如果新建一个文件,没有后缀名,也就是不指名文件类型,那么MyEclipse无法判断该用何种编码格式保存,就用默认文件保存编码格式GBK进行保存。
这个默认保存编码格式,可用如下方法修改:window-->preferences-->general-->workspace 在右侧Text file encoding->Other 选择UTF-8三、单个文件查看编码格式(也就是打开文件用的编码格式)更改。
这个方法没有更改文件的编码格式,只是告诉MyEclipse用何种编码格式进行解码。
在要查看的文件上,如文件Test.java上右键-->Properties-->Resource在右侧Text file encoding ->Other,可以进行修改。
tomcat乱码解决方案
(一) JSP页面上是中文,但是看的是后是乱码:解决的办法就是在JSP页面的编码的地方<%@ page language="java"contentType="text/html;charset=GBK" %>,因为Jsp转成Java文件时的编码问题,默认的话有的服务器是ISO-8859-1,如果一个JSP中直接输入了中文,Jsp把它当作ISO8859-1来处理是肯定有问题的,这一点,我们可以通过查看Jasper所生成的Java中间文件来确认(二) 当用Request对象获取客户提交的汉字代码的时候,会出现乱码:解决的办法是:要配置一个filter,也就是一个Servelet的过滤器,代码如下:import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.UnavailableException;/*** Example filter that sets the character encoding to be used in parsing the* incoming request*/public class SetCharacterEncodingFilter implements Filter {/*** Take this filter out of service.*/public void destroy() {}/*** Select and set (if specified) the character encoding to be used to* interpret request parameters for this request.*/public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)throws IOException, ServletException {request.setCharacterEncoding("GBK");// 传递控制到下一个过滤器chain.doFilter(request, response);}public void init(FilterConfig filterConfig) throws ServletException {}}配置web.xml<filter><filter-name>Set Character Encoding</filter-name><filter-class>SetCharacterEncodingFilter</filter-class></filter><filter-mapping><filter-name>Set Character Encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping>如果你的还是出现这种情况的话你就往下看看是不是你出现了第四中情况,你的Form提交的数据是不是用get提交的,一般来说用post提交的话是没有问题的,如果是的话,你就看看第四中解决的办法。
黑马程序员javaweb教程:Tomcat中编码问题
Tomcat中编码问题1Tomcat中编码问题总结编码问题会出现在:●页面中的乱码;●POST参数乱码;●GET参数乱码;2页面中编码处理页面中的中文编码处理方式:●把项目编码设置为UTF-8;●在页面中设置<%@page pageEncoding="UTF-8"%>或者<%@page contentType="text/html;charset=UTF-8"%>。
无论是<%@page pageEncoding="UTF-8"%>,还是<%@page contentType="text/html;charset=UTF-8"%>。
都会在响应页面时,给客户端浏览器发送contentType响应头信息,告诉客户端浏览器当前页面使用的是UTF-8编码。
只要你的页面使用的编码,与发送给浏览器的contentType中的编码一致,那么就不会出现页面乱码问题。
客户端浏览器会使用contentType中给定的编码来显示页面!3POST参数编码处理POST编码问题!我们知道,请求信息中,只有POST存在正文,所谓POST参数编码就是就是请求正文的编码。
默认情况下,使用getParameter()获取POST请求参数时,使用的是ISO-8859-1编码。
String name = request.getParameter("name");name = new String(name.getBytes("ISO-8859-1"), "UTF-8");System.out.println(name);因为在获取参数时已经被错误的编码了,但因为我们知道,乱码的两个原因:本来是使用UTF-8编码的,还错误的使用了ISO-8859-1编码。
Tomcat UTF-8 乱码问题解决办法
Tomcat UTF-8 乱码问题解决办法关于java的乱码,一直是双字节字符环境开发者的问题,不同的服务,不同的版本,甚至不同的系统环境,都有很大的影响。
今天说一下,在中文windows下,Tomcat5.5服务下的,UTF-8的乱码解决问题。
首先要需要了解的是web容器默认编码是iso-8859-1,一个汉字占用两个字节,而在utf-8中一个汉字占用三个字节。
所以在数据传递过程中,必须手动设定容器编码格式,否则会出现字符位丢失的情况。
即3个字节变为两个字节,自然会变成乱码。
其次,Tomcat 5以后,对post和get方法的编码控制分开了,像以前那样,仅仅request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");不能解决问题了。
明白了这个以后,再来看第一步,修改tomcat。
找到对应站点的server.xml后,在里面的Connector标签里面添加useBodyEncodingForURI="true"这句的话告诉tomcat用页面的编码去处理post,推荐使用。
这块有句更狠的就是URIEncoding="utf-8"不过是强制指定编码了,所以一旦有其他编码的页面存在,就会出问题,所以不建议用。
第二步,修改jsp页面头。
我是偷懒,全都加上了<%@ page language="java" pageEncoding="UTF-8"%>,然后在html标签的head标签里加上<meta http-equiv="Content-Type" content="text/html; charset=utf-8">第三步,修改指定编码。
Tomcat与weblogic中文乱码问题解决方案
Tomcat和weblogic中文乱码问题解决方案乱码的根本原因是编码和解码的不一致,所以只要把它们置成一样的就可以了。
解决乱码最好的方法是增加过滤器。
关键代码只有三行:使用tomcat服务器可以用一下过滤器先添加一个java类再在web.xml中注册这个过滤器,注意红色字体为添加的部分然而当我们将项目一到weblogic的时候,又有可能出现乱码,那么如何调整过滤器呢?weblogic中的过滤器如下:然后再web.xml中注册过滤器这样的话在weblogic中就不会出现乱码了。
这个过滤器理论上在tomcat和weblogic中都适用,但是我试了一下,在weblogic中好用,在tomcat中会乱码,估计是tomcat中编码的问题,可以尝试一下将项目编码该为“utf-8”另外,下面的方法也可以参考一下:1、所有文件的编码格式统一设成UTF-82、tomcat的server.xml文件中有个connector,增加一个属性 URIEncoding="utf-8"3、jsp之间传递参数时,如果包含中文字符,需要用encodeURI(URIString)转换一下这样基本也不会出现乱码的问题。
4 配置weblogic.xml过滤器filter1、web.xml<filter><filter-name>PageFilter</filter-name><filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter>2、过滤器类import ;import ;import ;import ;import ;import ;import ;public class PageFilter implements Filter {static String encoding = "";public void init(FilterConfig filterConfig) {encoding = filterConfig.getInitParameter("encoding");}public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException {request.setCharacterEncoding(encoding);filterChain.doFilter(request, response);}public void destroy() {} }。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法二:不推荐,有可能影响其他应用
默认情况下,tomcat使用的是iso8859-1的编码编码方式,浏览器的embed标签中src指向的地址要通过tomcat去解析。如果包含中文,采用这种编码方式就会出现乱码问题,而在这种情况下,乱码问题就表现出无法访问该音频文件了。
解决方法很简单:
修改方法:
修改tomcat下的conf/server.xml文件,找到Connector标签,添加useBodyEncodingForURI="true",如下代码:
<Connector port="8080" useBodyEncodingForURI="true" protocol="HTTP/1.1"
URIEncoding="UTF-8"
protocol="HTTP/1.1"
connecectPort="8443" />
修改Tomcat编码方式的两种方法
转自:/s/blog_7c76d63901018lyt.html
方法一:推荐,不会影响到其它项目
见我的另一篇博客:/x_wukong/p/3292664.html
修改tomcat下的conf/server.xml文件,如下代码:
connectionTimeout="20000"
redirectPort="8443" />
这段代码规定了Tomcat监听HTTP请求的端口号等信息。可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求。更改后的代码如下所示:
connectionTimeout="20000"
redirectPort="8443" />
对于 URL 提交的数据和表单中 GET 方式提交的数据,在接收数据的 JSP 中设置 request.setCharacterEncoding 参数是不行的,因为在 Tomcat5.0 中,默认情况下使用ISO-8859-1 对 URL 提交的数据和表单中 GET 方式提交的数据进行重新编码(解码),而不使用该参数对 URL 提交的数据和表单中 GET 方式提交的数据进行重新编码(解码)。要解决该问题,应该在 Tomcat 的配置文件的 Connector 标签中设置useBodyEncodingForURI 或者 URIEncoding 属性,其中 useBodyEncodingForURI 参数表示是否用 request.setCharacterEncoding 参数对 URL 提交的数据和表单中 GET 方式提交的数据进行重新编码,在默认情况下,该参数为 false (Tomcat4.0 中该参数默认为true );URIEncoding 参数指定对所有 GET 方式请求(包括 URL 提交的数据和表单中 GET 方式提交的数据)进行统一的重新编码(解码)的编码。URIEncoding 和 useBodyEncodingForURI 区别是,URIEncoding 是对所有 GET 方式的请求的数据进行统一的重新编码(解码),而 useBodyEncodingForURI 则是根据响应该请求的页面的request.setCharacterEncoding 参数对数据进行的重新编码(解码),不同的页面可以有不同的重新编码(解码)的编码。所以对于 URL 提交的数据和表单中 GET 方式提交的数据,可以修改 URIEncoding 参数为浏览器编码或者修改 useBodyEncodingForURI 为true ,并且在获得数据的 JSP 页面中 request.setCharacterEncoding参数设置成浏览器编码。