zoukankan      html  css  js  c++  java
  • IDEA提示非法字符,你不懂的UTF-8

    前些天用IDEA执行Java Web项目,提示非法字符,而且是一对一对的进行报错,由于涉及项目的保密,在这里之只能分享下排错的过程。

    他报错会定位到某个java文件,在项目中看起来根本没什么问题,之后就是靠谱的答案就去试试看呀,下面罗列我的解决步骤。

    1.修改java compiler字符参数

    需要增加-encoding UTF8参数,毕竟项目编译的时候也是可以有字符编码的错误。

    效果图

    经过测试,这种方法并没有把问题的根本解决掉。

    2.UTF-8的BOM与NO BOM

    BOM即byte order mark,具体含义可百度百科或维基百科,UTF-8文件中放置BOM主要是微软的习惯,但是放在别的系统上会出现问题。

    不含BOM的UTF-8才是标准形式,UTF-8不需要BOM,而idea中默认也是采用NO BOM格式的,具体可以在设置-file encoding 查看,及效果图如下。

    带BOM的UTF-8文件的开头会有U+FEFF,所以我新建的空文件会有3字节的大小。

    file encoding

    好多有介绍需要新建文本-复制-粘贴-替换源文件,

    实践过后,我总结的用notepad++工具打开文本,如果右下角显示UTF-8 BOM,选择编码-选用UTF-8编码即可切换为NO BOM。如下图。

    更改为UTF-8 NO BOM

    3,使用idea进行切换BOM

    亲测在2018-2版的idea,点击项目名称右键,选择 Remove BOM 即可将项目中UTF-8 BOM的文件去为NO BOM。

    如果该文章帮到了正在学习或工作中的你,别忘了点个喜欢,欢迎和我进行技术上的交流。

    同样的梦想,不一样的起点,大家共同进步, 微信公众号「孝客之乡」作者。
  • 相关阅读:
    C# 备份、还原、拷贝远程文件夹
    C#SpinWait和volatile一点温习
    Asp.net Core中使用Redis 来保存Session, 读取配置文件
    C# Round源码
    C# CRC16 和汉明重量
    .net源码调试 http://referencesource.microsoft.com/
    Session.Abandon和Session.Clear的实现和区别
    log4Net 高性能写入和CSV格式
    asp.net 简单记录请求的客户端和服务端 处理时间
    asp.net 用JWT来实现token以此取代Session
  • 原文地址:https://www.cnblogs.com/JulyTail/p/10291709.html
Copyright © 2011-2022 走看看