javaweb中的乱码问

xiaoxiao2021-02-28  112

作为一个新手,对于这个乱码问题真实头大,不过经过无数的查找,终于解决了javaweb中的乱码问题

1. 首先在jsp和servlet中,通过

<%@ page contentType="text/html;charset=UTF-8" language="java" %> request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8");将页面与后台的编码方式都设置为utf8,这个只是统一数据传输中的编码方式 2.然后在tomcat的安装目录下的conf文件的server.xml将  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>修改为 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/> 这个是为了也将tomcat的编码方式也改为utf8 3.接着便是修改mysql了首先关闭mysql服务(可以在cmd中通过net stop mysql关闭 或者打开电脑的管理,在服务中手动关闭mysql),然后在mysql的安装目录下的sqlyog 目录中找到my.ini,将default-character-set和character-set-server的字符集改为utf8 接着在cmd中用mysqld -initialize重新初始化mysql(一定要重新初始化mysql,否则无 法重新开启mysql服务),然后打开mysql服务。最后用show variables like "%colla%"; 和查看一下字符集show variables like "character_set_%"; 如果显示结果是下面这样, 则说明配置完成。 注意: 1. 如果以前建有数据库没有删除的且字符集不是utf8的,在命令行下面可以用

alter database 数据库名 character set “字符集”;命令来修改数据库字符集

或者在mysql操作软件上直接修改。

2. 一般来说,创建数据库和数据表时,系统会采取默认字符集,但可以在创建的时候

自己可以手动添加,

CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' ; CREATE TABLE `database_user` ( `ID` varchar (40) NOT NULL default '' , `UserID` varchar (40) NOT NULL default '' , ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 但我上面修改mysql的方法就是修改mysql的默认字符集,如果想修改成其他的字符集,可以 在创建的时候手动添加或者修改默认字符集。 utf8,个人认为是万能字符集,建议将默认字符集改为utf8,这样会省去很多麻烦。

至此javaweb中的乱码问题就得到解决了,希望能把自己遇到的问题和大家一起分享, 如有问题,敬请纠正。

转载请注明原文地址: https://www.6miu.com/read-56229.html

最新回复(0)