[已解决] error: unmappable character for encoding ASCII (java编译过程中出现的错误)

前言

本文旨在解决java编译中出现的错误信息:
error: unmappable character for encoding ASCII

1 问题场景

系统:Ubuntu 14.04
jdk版本:1.7

我在编译一个java项目的时候,出现了错误:
error: unmappable character for encoding ASCII,如下图。
在这里插入图片描述

2 原因

我认为原因很简单,应该是里面有中文字符(因为它显示的是??,具体我就不深究了)。才会报这样的错误。

3 解决方案一

根据java编译报错信息提示的??,把对应的代码中的问号给删掉,保存后再重新编译,就不会报错了。

但是这样“治标不治本”,以后有类似的问题还得手动改,不能一劳永逸。

所以给出解决方案二。

4 解决方案二

/etc/profile文件的末尾加上:export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8即可。

具体操作如下:

sudo nano /etc/profile     (修改/etc/profile 文件需要sudo权限,可以用nano编辑器,也可以用vim,gedit等等)

而后添加:
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

source /etc/profile  (使/etc/profile的修改立即生效)

然后再用java编译此项目,就不会报错了。

当然,如果嫌麻烦,也可以直接ctrl+alt+c打开Ubuntu终端,然后输入 export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 即可,但是我不确定下次开机启动时还会生效。

所以我在实际中是直接写到/etc/profile里面了,而且我在 ~/.bashrc文件中的末尾是加了一行source /etc/profile指令的,这样可以保证每次开机登录后,/etc/profile中的内容(如环境变量)都会生效。

总结

为什么要记录这个“简单的”问题呢?

因为一开始找了很久没找到正确答案(一开始看的都是 [2-5]这样的文献,不是我想要的答案),而且中间有些细节需要自己斟酌,觉得还比较有意义,故记录在此,如有碰到同样问题的读者看到这篇文章,也算提供了些微末的帮助吧。

参考文献

主要参考:
[1] 解决java - Unmappable character for encoding ASCII but my files are in UTF-8 http://www.itkeyword.com/doc/0410597815430237770/unmappable-character-for-encoding-ascii-but-my-files-are-in-utf-8

此外还参考了:

[2] Javadoc error: unmappable character for encoding ASCII https://stackoverflow.com/questions/22599003/javadoc-error-unmappable-character-for-encoding-ascii
[3] IDEA javadoc 生成文档时报错 error: unmappable character for encoding ASCII https://blog.csdn.net/u013020306/article/details/52767662
[4] Setting the default Java character encoding? https://stackoverflow.com/questions/361975/setting-the-default-java-character-encoding
[5] 进行以上Java编译的时候,出现unmappable character for encoding GBK。 https://www.cnblogs.com/yuhuameng/p/5448726.html

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值