乱码问题的整理 ps:补交昨天的作业

博主经历了下午和晚上的奋战,成功解决了乱码问题。主要涉及jsp页面编码设置、浏览器编码、mysql安装目录文档编码、数据库重启及table创建时的编码指定。通过调整这些设置,确保了汉字在cmd窗口的正常显示,尽管过程艰难,但博主的程序员之路充满决心。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

乱码问题困扰我了一个下午加一个晚上。。终于搞定。各方整理资料,以备以后遗忘!


1.jsp页面的编码设置 :主要是浏览器加载时候的编码。此外还应设置浏览器的编码方式。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; utf-8">


2.发起request请求之后,数据传递的编码设置,一般在filter里面设置req及res。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse res = (HttpServletResponse)response;
 		req.setCharacterEncoding("utf-8");
 		res.setCharacterEncoding("utf-8");
		if(req.getParameter("username")!=""){
 			chain.doFilter(req, res);
 		}
		else {
			res.getWriter().println("用户名不能为空");
		}
	}


3.tomcat服务器的    /conf/server.xml文档的 设置。

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
这里修改了这个server.xml文档,我当时用eclipse重启tomcat服务器后,该文档被重置了。后来发现,eclipse加载时候是会重写这个文档,秘密就在于eclipse工程 树栏目里面,有一个server文件夹,里面的server.xml必须要加同样的代码,即加一行URIEncoding = "UTF-8"即可。

4.数据库mysql的安装目录文档内编码设置。

在mysql安装目录里找到my.ini文件,(ps:没有my.ini的,复制一份即可。)文档编辑器打开这个文件之后,添加如下代码:

[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

[mysqld]  
init_connect = 'SET NAMES utf8'  
character-set-server=utf8

保存后,进cmd命令窗口,重启数据库:net stop mysql   <回车>  net start mysql <回车>

进入数据库以后,利用命令------> SHOW VARIABLES LIKE "%CHAR%"; 查看编码方式


5.mysql在创建database table时候,应该制定编码方式。

至此,你的汉字在cmd窗口也能正常显示了。虽然感觉自己写的好水,但还是有无穷的力量啊。谁让俺在快要进入而立之年的时候突然选择转行想要当一个程序员呢(码农。。)

路漫漫其修远兮,吾将上下而求索!!!此处应该有掌声。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值