IntelliJ IDEA :Error:(1, 1) java: 非法字符: '\ufeff'

本文介绍了解决Android Studio中UTF-8+BOM编码导致的非法字符错误的方法。通过重新创建文件并调整编译设置,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  

    

      原因:Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能,所以使用IDEA和Android Studio编译UTF-8+BOM编码的文件时会出现” 非法字符: '\ufeff' “之类的错误。

搜到两种解决方案:

1、把UTF-8 转 UTF-16再转回来(我在转UTF-16时就提示转码失败

2、下载Notepad++ 进行文本编码(网上搜了半天,下载了好几个,可惜都是windows的软件,而我用的Mac骂人

在无奈之下,我尝试了另一条路,既然编码错误,我重新写一遍总可以吧。。。

首先,找到把报错的.java文件,把内容全部复制下来,然后把源文件删除,接着新建一个文件,名字一定要和之前一样,把代码全部复制到里面,有几个文件就操作几遍,编译一下代码,有的相关文件会提示找不到类,原因是之前给删除了,依次把类文件导入,就可以运行了,ok大笑。。。

### 非法字符 '\ufeff' 的解决方案 当在 IntelliJ IDEA 中遇到数据库连接错误提示 `非法字符 '\ufeff'` 时,这通常是因为文件开头存在 BOM (Byte Order Mark) 字符。BOM 是一种不可见的标记,在某些编码方式下会出现在文件头部。 对于该问题,可以采取以下措施来解决问题: #### 方法一:移除 BOM 如果源码文件是以 UTF-8 with BOM 编码保存,则可能会导致此问题。建议将文件重新保存为无 BOM 的 UTF-8 编码格式[^1]。 可以通过编辑器设置更改文件编码: 1. 打开存在问题的 SQL 文件或其他配置文件; 2. 使用支持去除 BOM 的文本编辑工具(如 Notepad++ 或 VS Code),将其转换成纯 UTF-8 编码而不再附加 BOM; 3. 保存修改后的文件并尝试再次建立数据库连接。 #### 方法二:调整 JDBC URL 参数 有时也可以通过向 JDBC 连接字符串添加特定参数的方式来忽略这些特殊字符的影响。例如,在 MySQL 数据库的情况下可以在 jdbc url 后面加上 useUnicode=true&characterEncoding=UTF-8 来指定字符集处理规则[^2]。 ```sql jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=UTF-8 ``` #### 方法三:清理项目缓存与重建索引 IntelliJ IDEA 可能由于内部缓存机制而导致读取到了不正确的字节序列。此时可考虑执行如下操作清除 IDE 自身可能存在的干扰因素: - File -> Invalidate Caches / Restart... - Choose "Invalidate and Restart" 重启之后再试一次数据库连接看是否恢复正常工作状态。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值