IDEA运行Web项目出现乱码

IDEA 2019中运行了一个Web项目,是一个机票预订的项目,但是运行会出现乱码吗,比如我添加一个在线留言,点击提交,正常情况应该弹出一个提交成功的对话框,但是他出现的是乱码。
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/824085520586166.png "#left
错误的情况都是这样,比如管理员删除个订单信息啥的,弹出的对话框也会乱码,求解求解。
另外我还发现了问题就是这个

img

img


不知道这会不会有什么联系啊。我也在网上找了好多解决下面这两个问题图片的办法,都没用,快教教我,毕设项目,时间紧,要哭死了!!

这些多是WEB页面的字符集设置引起的,可参考以下调整:

  1. 设置接收参数字符集

img

  1. 指定页面显示字符集
<meta charset="UTF-8">

img


  tomcat和ide设置utf-8

界面和后端统一设置字符集为utf-8,就好。

乱码都是由于编码问题导致的,既然是后台返回的响应数据在前台乱码,说明后台服务器的编码与客户端解码方式不一致。后台的方法中设置下响应的内容编码:

// 它会同时设置服务器和客户端都使用 UTF-8 字符集, 还设置了响应头
 response.setContentType("text/html; charset=UTF-8");

至于后面的Decompiled .class file, bytecode version: 52.0 (Java 8)这个问题跟你的乱码不影响,没有关系

一般情况就是 编码问题, 照着百度吧所有能改编码的地方编码都改了 就好,
特殊情况是 弹窗的这个api接口 或者页面有问题,

所有的编码都固定下

  tomcat和idea设置utf-8
```bash


```

  1. Tomcat8以后默认就是utf8编码了。如果你使用的是tomcat7或以前版本,需要设置tomcat的配置文件server.xml,如下:
    <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000" 
            redirectPort="8443" URIEncoding="UTF-8" />
    
  2. 如果你的提示信息是从服务器返回的,那么你需要看看服务器里面这个提示信息文本所在的文件是不是utf8编码,如果不是应改为utf8编码。
  3. 如果这个提示信息是你页面生成的,那么就需要把页面的编码设置为utf8,前面的回答已经有说明了。

这种情况很可能是编码问题导致的。在Java Web项目中,有许多地方都需要注意编码,比如:

数据库连接的编码:需要确保数据库连接的编码与项目编码一致;
JSP和Servlet的编码:需要确保JSP和Servlet的编码与项目编码一致;
HTML页面的编码:需要确保HTML页面的编码与项目编码一致;
Java源文件的编码:需要确保Java源文件的编码与项目编码一致;
服务器的默认编码:需要确保服务器的默认编码与项目编码一致。
针对具体的问题,可以尝试以下几种解决方案:

在JSP页面中添加meta标签,指定页面的编码方式,例如:

html
Copy

```

这样可以确保浏览器正确地解析页面中的中文字符。

在Servlet中设置response的编码方式,例如:

java
Copy
response.setContentType("text/html;charset=UTF-8");


这样可以确保服务器正确地将内容编码后发送给浏览器。

在项目的配置文件中设置编码方式,例如在web.xml中添加以下配置:

xml
Copy
<filter>
    <filter-name>encodingFilter</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>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

这样可以确保项目中的所有内容都是以UTF-8编码方式进行处理的。

在数据库连接的字符串中指定编码方式,例如:

java
Copy
String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8";

```

这样可以确保Java程序正确地将中文字符转换为UTF-8编码后存储到数据库中。
通过以上方式,可以逐一排除编码问题,最终找到导致乱码的原因并进行修复。另外,建议在项目开发过程中,尽可能使用统一的编码方式,以避免出现编码不一致的问题。

前后端统一使用utf8就行了


一、统一服务器编码,由于这里用的是Tomcat服务器,所以以tomcat为例进行设置,在服务器中有两处需要设置:

找到tomcat的bin目录下的catalina.bat并编辑,新增-Dfile.encoding=utf-8
找到tomcat的conf目录下的server.xml并编辑,修改你项目用到的端口所对应的Connector,比如我这边用到的是8080端口,那么修改后内容如下:
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="utf-8" />
二、设置开发工具编码,找到IDEA的安装文件夹的bin目录,如下所示:



我这里修改的是idea64.exe.vmoptions文件,通过编辑器编辑该文件,在文件内容单独起最后一行,输入

-Dfile.encoding=utf-8
三、设置全局和项目编码,如下图所示,图中标有数字的地方都需要设置

img

img

img

img

设置一下

你的java项目是jsp 还是springmvc 还是springboot 。乱码的话,你可以查看浏览器运行源代码看看是否乱码?主要是加上字符编码来解决

F12看下接口返回的是否乱码了,如果没有说明是页面编码问题,否则检查后端编码方式。
tomcat 和 项目编码方式统一设置为utf-8