文章目录
设置JDK
环境变量设置:
JAVA_TOOL_OPTIONS
-Dfile.encoding=UTF-8
Tomcat乱码
启动时出现乱码
在网上下载了一个版本号为apache-tomcat-8.5.38的Tomcat,因为这个Tomcat一直没有用过,所以今天启动时出现了如下乱码:
解决方案:
找到Tomcat目录下conf文件夹中的logging.properties文件,
打开logging.properties文件,找到文件中的java.util.logging.ConsoleHandler.encoding = UTF-8,
将其中的UTF-8改为GBK,保存后重启Tomcat服务,启动后就会看到刚才的乱码已经转换过来了。
Tomcat的标题出现了乱码
我常用的Tomcat标题的命名有下面两种:
首先找到Tomcat目录下bin目录下的catalina.bat文件,用记事本打开:
第一种:在这个地方写这么一句:
set TITLE=Tomcat 8.5.38 这里是标题乱码测试
第二种:在Tomcat原来标题的位置写标题:
说明: 不管是使用哪一种方式,其效果都是一样的,但是,如果同时使用两种方式,在启动的时候会闪退!
来看看正常启动后的效果:
标题位置出现了乱码,这个时候可以用Notepad++来调整文件的编码:
我们可以看到现在文件使用的是UTF-8编码,我们可以点击下面的 转为ANSI编码 来调整文件的编码,点完了不要忘了保存哦~重启Tomcat来看看效果:
问题解决!
Eclipse控制台乱码
- 修改tomcat的conf路径下的server.xml文件,在端口号那一行添加URIEncoding=“UTF-8”
- 在eclipse的安装目录下有一个eclipse.ini文件,在最后一行添加-Dfile.encoding=UTF-8,修改eclipse的默认编码为UTF-8
- 在eclipse里面:菜单Windows->Preferences -> MyEclipse Enterprise Workbench->Servers->Tomcat,选择tomcat版本例如Tomcat 6.x,再选择JDK,在右侧Optional Java VM arguments:中添加-Dfile.encoding=UTF-8
Intellij IDEA启动Tomcat 控制台乱码
2020版本以前
- 打开tomcat配置页面,Edit Configurations。
- 选择项目部署的tomcat,在配置项VM options文本框中输入-Dfile.encoding=UTF-8,点击Apply或OK即可。
- 修改部署的Tomcat server.xml
URIEncoding=“UTF-8”
- 尝试重启tomcat,乱码问题解决。
ps:若乱码问题依然存在,请尝试继续按以下步骤解决:
- 打开IntelliJ IDEA本地安装目录中bin文件夹下的idea.exe.vmoptions和idea64.exe.vmoptions这两个文件。
- 分别在这两个文件内容的末尾添加-Dfile.encoding=UTF-8
- 打开IntelliJ IDEA>File>Setting>Editor>File Encodings,将Global Encoding、Project Encoding、Default encodeing for properties files这三项都设置成UTF-8,点击OK或者Apply。
- 重启IntelliJ IDEA即可解决乱码问题。
针对 2020.1 以后版本的控制台乱码解决
HELP->Edit Custom VM OPtions中加 -Dfile.encoding=UTF-8
重启idea
Ajax提交 返回中文乱码
@GetMapping(value = "getXz", produces="text/html;charset=UTF-8;")
@ResponseBody
public String returnXzByZyid(String zyid) {
return zsdjService.returnXzByZyid(zyid);
}
原理:手动给对应的Accept返回制定格式编码数据。
Xshell6中文乱码
在root用户下 :
vim /etc/profile
在文件的最后一行加入 export LC_ALL=zh_CN.utf-8,即可解决乱码问题
vim 命令:
i 插入
:wq 保存
SSH远程连接工具乱码
Linux编码默认UTF-8,而SSH工具编码默认GBK,并且不可修改。
所以只能修改Linux编码为GBK。使用vi编辑器也可通过下一节的EditPlus工具。修改完重新连接一下即可。
/etc/locale.conf —> GBK
JPA 保存MySQL 中文乱码问题
场景:
Spring Boot使用JPA,当前端传入到后端的数据为中文的时候,入库变为???
解决:
项目数据库连接指定字符集 characterEncoding=utf-8 即可
spring.datasource.url=jdbc:mysql://localhost:3306/testDemo?autoReconnect=true&useSSL=false&characterEncoding=utf-8
使用Kettle转移数据遇到中文乱码问题
使用kettle进行数据同步的时候,发现同步来的中文数据产生了乱码。中文变成了?,如图:
百度了很多方法,做下总结:
1. Kettle中配置源数据库、目标数据库编码
characterEncoding=utf8
2. 编辑“表输入”,去掉勾选“允许简易转换”
3. 如果不行,就清理一下Kettle数据库连接的缓存
4. 如果还不行,可以试着在kettle的启动文件添加字符集,即在 Spoon.bat 文件中添加 "-Dfile.encoding=UTF-8"
:
5. 工作中遇到,以上方法都不行
排查原因:
- 检查输入是没乱码的,如图:
- 输出不能预览数据,以上方法都试过了 还是不行
- 尝试把编码改为GBK,居然好了 真是服气~~!!