IDEA 2019中运行了一个Web项目,是一个机票预订的项目,但是运行会出现乱码吗,比如我添加一个在线留言,点击提交,正常情况应该弹出一个提交成功的对话框,但是他出现的是乱码。
;
至于后面的Decompiled .class file, bytecode version: 52.0 (Java 8)这个问题跟你的乱码不影响,没有关系
一般情况就是 编码问题, 照着百度吧所有能改编码的地方编码都改了 就好,
特殊情况是 弹窗的这个api接口 或者页面有问题,
所有的编码都固定下
tomcat和idea设置utf-8
```bash
```
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
这种情况很可能是编码问题导致的。在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
三、设置全局和项目编码,如下图所示,图中标有数字的地方都需要设置
设置一下
你的java项目是jsp 还是springmvc 还是springboot 。乱码的话,你可以查看浏览器运行源代码看看是否乱码?主要是加上字符编码来解决
F12看下接口返回的是否乱码了,如果没有说明是页面编码问题,否则检查后端编码方式。
tomcat 和 项目编码方式统一设置为utf-8