2019独角兽企业重金招聘Python工程师标准>>>

最近,在本地启动公司另外一个项目时,发现项目JS文件居然报错一大片,这个不能容忍啊,所以立马着手百起来(以下为坊间流传方案,虽然部分可以解决,但是总觉得不是很到位,也就是没有找到点子上去。)

解决过程:在网上也找过很多关于JS乱码方面的文章,发现都不好使,原因在于每个解决方案肯定是基于当事人所遇到的乱码问题做出的解决方式,可能不适合于你,后来琢磨到乱码问题肯定是开发过程中某处编码没有统一的问题,那么采用最笨的方式,就是把开发工具的编码、服务器编码、项目编码都统一,问题不就可以解决了,实验证明确实如此,好了,开始设置:

一、统一服务器编码

由于这里用的是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

三、设置全局和项目编码

打开IntelliJ IDEA,选择:File->settings->Editor->File Encoding,选择UTF-8。

四、设置TOMCAT启动项目时用到的VM option

打开IntelliJ IDEA,选择:Edit Configurations->Server->VM options: 添加

-Dfile.encoding=utf-8

五、设置Startup/Connection,Environment Variables

打开IntelliJ IDEA,选择:Edit Configurations->Startup/Connection->Run/Debug:

1.勾选pass environment variables;

2.添加参数:JAVA_TOOL_OPTIONS,值为-Dfile.encoding=UTF-8;

六、MAVEN项目编码设置

找到pom.xml文件中的properties元素,添加如下内容:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

经过以上五处的设置相信可以解决大部分乱码问题,好了,就这么多!!!

- - - - - - - - - - - - - - - -✂- - - - - - - - - - - - - -✂-- - - - - - -- - - - - - - -✂- - - - - - -- - - - - - - - -

但是,万万没想到,我的问题只解决了一半,日志里开始乱起来了,索性静下来,自己理了理:

第一,只有当前这一个项目会报错,其他项目正常;

第二,只有js文件中文会报错,其他中文均正常;

那么就是除项目外的配置都是没问题的,好吧,刚刚乘吃饭的功夫,仔细对比了,报错和没报错的web.xml文件中的配置,居然还真有不一样的地方:

<filter><filter-name>CharacterEncodingFilter</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><!--本地项目js中文乱码--><!--<init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param>--></filter>

咯,就是以上我注释掉的地方!!!

后面又查了forceEncoding的相关资料

官方解释:

Servlet 2.3/2.4 Filter that allows one to specify a character encoding for requests. This is useful because current browsers typically do not set a character encoding even if specified in the HTML page or form. (这句话就说你在html页面或表单中设置编码是没有用的)

This filter can either apply its encoding if the request does not already specify an encoding, or enforce this filter's encoding in any case ("forceEncoding"="true").(只要你设置了foreEncoding=true,则在代码中设置编码格式没用,)In the latter case, the encoding will also be applied as default response encoding on Servlet 2.4+ containers (although this will usually be overridden by a full content type set in the view).

转载于:https://my.oschina.net/weijuer/blog/3022177

【防衰老教程】记录一次IDEA,开发JavaWeb项目时JS中文乱码排错相关推荐

  1. 记录一次IDEA开发JavaWeb项目时JS中文乱码排错方法

    大家经常遇到乱码问题,我一般习惯性的把编码问题归结为两种: 编码层面的乱码:指的是那些需要修改项目内的代码或配置来解决的乱码问题,比如有的时候从数据库获取的数据是乱码.发送ajax请求时,获取到的数据 ...

  2. weblogic下开发web项目时修改java文件不用重启的绿色方法,不用修改weblogic的配置文件、不用jar...

    2019独角兽企业重金招聘Python工程师标准>>> weblogic下开发web项目时修改java文件不用重启的绿色方法,不用修改weblogic的配置文件.不用jar      ...

  3. eclipse开发javaweb项目中The superclass javax.servlet.http.HttpServlet was not found on the Java Build

    The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方案: ...

  4. [vue-cli]在使用vue-cli开发vue项目时,自动刷新页面的原理你了解吗?

    [vue-cli]在使用vue-cli开发vue项目时,自动刷新页面的原理你了解吗? 自动刷新页面并不是vue-cli的功能,而是webpack的hot-module-replacement-plug ...

  5. 使用eclipse开发web项目运行时出现中文乱码问题

    使用eclipse开发web项目运行时出现中文乱码问题 检查Tomcat sever.xml中的编码设置是否为 utf-8 ,不是的话改一下: <?xml version="1.0&q ...

  6. Vue+ts开发h5项目时引用百度地图报BMap问题

    最近在用vue+ts开发h5项目时,有一个页面用到了vue-baidu-map,运行里面的搜索功能时,控制台一直报如下错误 解决方法:

  7. JAVAWEB开发模式之JSP的几种开发模式、处理Cookie中文乱码

    JSP开发模式 SUN公司推出JSP技术后,同时也推荐了两种WEB应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. JSP+JavaBean ...

  8. tomcat与iis公用80端口(已经发布.net项目现在开发Java项目时tomcat在eclipse中localhost:8080打不开问题)...

    在开发过.net项目的电脑上安装eclipse配置tomcat运行时打不开页面问题描述,这也是本人亲生经历,找了好多资料网上大多都是tomcat配置问题描述,今天突然想到是不是IIS的问题,果然上网一 ...

  9. SpringMVC(SSM)框架搭建JavaWeb项目时,前端页面文件上传,后台Java下载功能实现及相关问题记录说明

    看在前面:前端页面通过input控件实现文件上传,后台Java使用SpringMVC框架的实现网上有较多教程,但是真正配置一遍下来不报错的较少,所以本博客前面先介绍一遍完整的设置步骤,然后介绍遇到的一 ...

最新文章

  1. Winform开发的界面处理优化
  2. java模拟器未载入,由于“活页夹线程池”,应用程序未在模拟器上运行
  3. 网络营销外包——网络营销外包专员如何提升首页关键词的转化率
  4. 如何转载别人的CSDN文章
  5. Flask爱家租房--房屋管理(搜索房屋列表)
  6. rn 实现上下滑动选择列表_用大前端技术实现的一款仿Boss直聘app(已开源)
  7. C++:成绩类Score
  8. [Python] 网络爬虫和正则表达式学习总结
  9. COM的八个经验和教训
  10. 干货分享:Neutron的PPT,帮助你理解Neutron的各种细节
  11. 《zabbix_agent客户端的添加》-5
  12. 离线语音识别与语音转写初探
  13. java 实现 PTF远程连接带有中文下载,解决文件损失
  14. 2022年免费企业邮箱大全,用免费邮箱发邮件安全吗?
  15. JAVA发送手机短信,httpclient短信发送接口示例(java)
  16. 反馈 术语 串小鸭 并大流
  17. HP打印机M329dw纸盘关闭卡、涩问题解决
  18. 软件测试之构建测试---BVT
  19. OSChina 周日乱弹 —— 种族不同,禁止交往
  20. 图片对象(lv_img_t)的应用

热门文章

  1. Quartz2D简单绘制之不规则形状
  2. 基于遗传算法实现自动组卷
  3. lwbt的内存分配详解
  4. 一、WPF 2个datagrid之间同步进度条
  5. spring的AOP配置之XML方式
  6. Juqery让世界更美好--超级简单实用的(上、下)自动翻的最佳效果,有图为证!...
  7. 基础数据类型操作(一)——整型、字符串
  8. Android Studio最全插件整理
  9. 拓扑排序基础题——排序
  10. jQuery选择器引擎和Sizzle介绍