Java: unmappable character for encoding Gp1252错误 改为UTF-8 中文显示“???"

  • 配置情况:  Win7 x64 英文版系统
  • 软件平台:Java 8
         在DOS环境下编译Java程序时,因为程序内有中文字符,提示Gp1252错误,百度之。结论是由于编码问题,需要把系统编码改为UTF-8 。方法如下:
  • 在环境变量修改中 新建系统变量 变量名”JAVA_TOOL_OPTIONS 变量值为:-Dfile.encoding=UTF-8 修改完后重启电脑(网上有说重启命令行窗口就可生效,亲测不行。)。

  • 添加完系统变量后运行如下程序段可以检测 如图
import java.io.ByteArrayOutputStream;  
import java.io.OutputStreamWriter;  
import java.nio.charset.Charset;  
  
class TestEncodingType {  
    public static void main(String[] args) {  
        System.out.println("Default Charset=" + Charset.defaultCharset());  
        System.out.println("file.encoding=" + System.getProperty("file.encoding"));  
        System.out.println("Default Charset=" + Charset.defaultCharset());  
        System.out.println("Default Charset in Use=" + getDefaultCharSet());  
    }  
  
    private static String getDefaultCharSet() {  
        OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream());  
        String enc = writer.getEncoding();  
        return enc;  
    } 
 
从此运行编译软件都会有一行提示。



至此,解决了unmappable character for encoding Gp1252 错误问题。但是无法正常显示中文字符。 这是因为Windows系统默认是unicode,对于不是Unicode编码的就会显示异常。通过更改系统区域设定,设定为本地区域即可解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值