导航:首页 > 编程语言 > java中文乱码tomcat

java中文乱码tomcat

发布时间:2021-04-18 03:56:09

Ⅰ 关于jsp被tomcat编译后的网页出现汉字乱码。

jsp乱码原因主要有两方面,java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。
一、首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。
基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写中文没关系),如果必须写的话,尽量手动带参数-ecoding GBK或-ecoding gb2312编译;对于JSP,在文件头加上<%@ page contentType="text/html;charset=GBK"%>或<%@ page contentType="text/html;charset=gb2312"%>基本上就能解决这类乱码问题。
重点介绍第二类乱码,即Java程序与其他存储媒介交互时产生的乱码。很多存储媒介,如数据库,文件,流等的存储方式都是基于字节流的,Java程序与这些媒介交互时就会发生字符(char)与字节(byte)之间的转换,例如从页面提交表单中提交的数据在Java程序里显示乱码等情况。
如果在以上转换过程中使用的编码方式与字节原有的编码不一致,很可能就会出现乱码。
二、解决方法
对于流行的Tomcat来说,有以下两种解决方法:
1) 更改 D:\Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”:
方法是找到 server.xml 中的
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />
可以这样验证你的更改是否成功:在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。
b)java程序要这么修改:
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=GBK");
...
}
}
response.setContentType("text/html; charset=GBK");这句话的作用是让浏览器把Unicode字符转换为GBK字符。这样页面的内容和浏览器的显示模式都设成了GBK,就不会乱码了。

Ⅱ java中tomcat启动时log4j中文乱码如何处理

是因为输出日志的编码和当前系统的编码不一样

Ⅲ java中中文出现乱码是怎么回事

你是用Eclipse开发的吗?是的话在首选项选择编码格式,一般都是GBK和UTF-8,切换就行了

Ⅳ Servlet + Tomcat 中文乱码的解决方法

乱码的本质原因是Servlet打出来的字符的编码与你浏览器自动选择的编码不一致,默认情况下用户的浏览器的编码是“自动选择”的。所以对于乱码的问题,首先要搞清楚servlet里面的string是用什么编码print给浏览器的,明确了这一点,就应该setContentType("text/html; charset=你的编码"),来告诉浏览器,如果是html,最好在meta里面指定,浏览器更优先看meta

Ⅳ 怎么配置java中tomcat的编码

在tomcat 的server.xml 中配置。

<Connectorport="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443"/>

Ⅵ java web运行在tomcat服务器上,提交给服务器的汉字乱码,怎么解决

web中部署,使用 filter去做转换成utf-8就容易得多了
~
~
~~~~~~~~~~~~~

Ⅶ javaweb怎么处理中文乱码问题

中文乱码问题真的是一个很棘手的问题,特别是从前台传到后台之后,都不知道问题出在哪里了。现在分享解决javaWEB中前后台中文乱码问题的3种方法。
方法一:
tomcat的自带编码是ISO-8859-1的格式,是不兼容中文的编码的。所以我们从后台接收的时候要注意。
采用相同的格式去接收(ISO-8859-1),然后用能解析的编码(utf-8)去转换。这样我们就能得到能兼容中文的格式了。这样处理之后发往前台。注意:发往前台的时候也需要设置一下
resp.setContentType("text/html;charset=utf-8");//设置页面的字符编码,解决界面显示中文乱码的问题
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//因为tomcat自带编码是ISO-8859-1格式

//解决乱码方法之一
<span style="white-space:pre"> </span>String name=req.getParameter("username");
<span style="white-space:pre"> </span>String pwd=req.getParameter("pwd");
<span style="white-space:pre"> </span>byte[] b=name.getBytes("ISO-8859-1");//用tomcat的格式(iso-8859-1)方式去读。
<span style="white-space:pre"> </span>String str=new String(b,"utf-8");//采用utf-8去接string
<span style="white-space:pre"> </span>resp.setContentType("text/html;charset=utf-8");//设置页面的字符编码<span style="white-space:pre"> </span>

<span style="white-space:pre"> </span>PrintWriter pw =resp.getWriter();
<span style="white-space:pre"> </span>String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>";
<span style="white-space:pre"> </span>pw.print(str1);
PrintWriter pw =resp.getWriter();
String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>";
pw.print(str1);

方法二:
由于方法一比较繁琐,采用用了简单的设置。只需要简单的一句就可以搞定
req.setCharacterEncoding("utf-8");//必须写在第一位,因为采用这种方式去读取数据,否则数据会出错。
这样就不用像之前的那样繁琐的设置了

protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//因为tomcat自带编码是ISO-8859-1格式

//解决乱码二《法一比较繁琐》
req.setCharacterEncoding("utf-8");//必须写在第一位,因为采用这种方式去读取数据,否

则数据会出错。
//设置这样方式去读。这样中文就能够读取出来了,但是需要注意。表单的发送方式必须是<span style="color:#ff0000;"> method='post'</span>
resp.setContentType("text/html;charset=utf-8");//设置传过去的页面显示的编码
String name=req.getParameter("username");
String pwd=req.getParameter("pwd");
PrintWriter pw =resp.getWriter();
String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>";
pw.print(str1);

方法三:
这是在法二的基础上修改的。虽然我们能修改编码格式去读,但是考虑到用户肯定不会修改,所以我们需要采用比较通用的办法,让用户修改配置文件。也就是web.xml文件
需要修改web.xml里面的内容,就是说,字符编码从xml接收过来。需要在xml文件中配置参数。
代码如下:

<servlet>
<servlet-name>Encodeing</servlet-name>
<servlet-class>cn.hncu.com.encode.Encodeing</servlet-class>
<init-param>
<param-name>charset</param-name>
<param-value>utf-8</param-value>//这里面的内容可供用户自己填写(必须是编码格式)
</init-param>
</servlet>

我们知道前台和后台进行交换必须经过web.xml配置
我们需要获取web.xml的设置的参数

public void init(ServletConfig config) throws ServletException {
charset=config.getInitParameter("charset");//获得初始化参数。当然charset需要设置为全局变量。后面的service函数需要设置req.setCharacterEncoding(charset);
}

req.setCharacterEncoding(charset);
resp.setContentType("text/html;charset=utf-8");
String name=req.getParameter("username");
String pwd=req.getParameter("pwd");

PrintWriter pw =resp.getWriter();
String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>";
pw.print(str1);

Ⅷ javaweb怎么处理中文乱码

1.UTF-8国际编码,GBK中文编码。GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;

2、web tomcat:默认是ISO8859-1,不支持中文的

3.java.nio.charset.Charset.defaultCharset()获得平台默认字符编码;

4.getBytes() 是通过平台默认字符集进行编码;

二、引入

在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置;而在Servlet中,也会遇到中文乱码问题;

比如:

OutputStream out = response.getOutputStream();

out.write(String );

输出中文时可能会出现乱码;

比如:

[java]view plain

Ⅸ 如何解决Tomcat下中文乱码问题

对于流行的Tomcat来说,有以下两种解决方法:
1) 更改 D:\Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”:
方法是找到 server.xml 中的
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />

标记,粗体字是我添加的。
可以这样验证你的更改是否成功:在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。
b)更该 Java 程序,我的程序是这样的:
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=GBK");
...
}
}

粗体字是必需要有的,它的作用是让浏览器把Unicode字符转换为GBK字符。这样页面的内容和浏览器的显示模式都设成了GBK,就不会乱码了。

Ⅹ 关于javaweb项目在linux下tomcat乱码

1.如果你的是Tomcat服务器,在Linux服务器上找到你的Tomcat服务器下的bin目录中的Catalina.sh文件,编辑它,在里面的JAVA_OPTS变量中添加“-Dfile.encoding=GBK -Dsun.jnu.encoding=GBK”,记住,一定是GBK的
2.如果是Jboss服务器,那么也是在bin目录下,但是是修改run.conf文件,也是在JAVA_OPTS变量中添加“-Dfile.encoding=GBK -Dsun.jnu.encoding=GBK”。
修改好后,保存,重启服务器,搞定。望采纳,谢谢。

阅读全文

与java中文乱码tomcat相关的资料

热点内容
hpwia驱动程序win7 浏览:398
iphone和mac蓝牙连接不上 浏览:844
centos指定用户启动服务配置文件 浏览:176
此exe不是最新版的录像文件 浏览:904
带环文件夹 浏览:78
javascript当前位置 浏览:460
扑克牌接龙编程怎么弄 浏览:914
非诚勿扰灭灯哪个app好 浏览:59
义乌苏州响应式网站制作多少钱 浏览:30
安卓神途手机版 浏览:821
javascript网页翻译 浏览:679
面向对象的编程软件哪个比较好 浏览:365
黄金仓库升级工具 浏览:554
pads导出贴片坐标文件为excel文件 浏览:292
哪个app里面教做饭 浏览:938
学编程电脑要装什么 浏览:589
shell查看文件指定内容 浏览:774
sol文件结构 浏览:469
共享文件夹没有修改权限 浏览:481
华为什么锁屏清数据 浏览:254

友情链接