本文适用于Java源码用UTF-8编码,平台系统为Windows的情况

不管是maven,还是javac,你的IDE都会带上一个参数:-Dfile.encoding=UTF-8

Windows(或许Windows10以下)的CMD默认活动代码页是GBK,
也就是 936,这样的话,很多工具会显示中文。
如果遇到内部编码是UTF-8的程序,他会乱码,例如rbt.

如果你改成 chcp 65001 也就是UTF-8,那么CMD字体变成点阵字体,就不是之前的那个熟悉的终端了,出奇的难看,输出都变成英文。。

Mysql之类的终端都正常了,能显示中文了。。

如何设置终端默认UTF-8编码

还在用cmd?

现在都流行用cmder.强烈推荐。

启动脚本设置 chcp 65001。开心又愉快。
Win+ALT+P打开设置,Environment > 在窗口中加入

chcp utf-8
set JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"

这样终端环境就是UTF-8了。

java -cp Test.jar com.cortwi.operate.Test

会很正常的显示中文了,如下图1-1


图1-1 cmder设置65001和UTF-8环境 执行Java

注意:

经过测试,CHCP 936的终端,没有JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
的情况下执行JAVA输出的中文是不会乱码的

如果在CHCP 936的终端下,那么不应该设置系统环境变量:JAVA_TOOL_OPTIONS ,应该直接执行:

java -cp Test.jar com.cortwi.operate.Test

又会很开心的输出中文了。

TIPS不改变系统环境:

chcp 936
chcp 65001

若想保留Windows默认设置,就来回切换吧,把以上两个命令常记在心。。。。
使用自带命令就用 936,中文GBK环境。
使用一些UTF-8的跨平台的那种程序遇到了乱码,就执行chcp 65001 将当前终端的活动代码页改为UTF-8,中文就不会乱码,但是命令输出提示可能会变成英文。

经过测试Windows[7] 的svn是需要chcp 936的。如图 1-2所示。

图1-2 cmder的chcp 936环境

65001下会乱码,如图1-3

图1-3 cmder的chcp 65001环境

谜一样的Java编码和Windows编码的更多相关文章

  1. 签名、BOM头、编码、Windows记事本编码、java编码解码的那些事

    对于Windows记事本: ANSI :GB2312 java中应使用GBK解码 Unicode :有签名的UTF-16LE java中应使用UTF-16解码 Unicode big endian : ...

  2. Java IO4:字符编码

    前言 字符编码,这本不属于IO的内容,但字节流之后写的应该是字符流,既然是字符流,那就涉及一个"字符编码的"问题,考虑到字符编码不仅仅是在IO这块,Java中很多场景都涉及到这个概 ...

  3. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  4. java中的字符编码方式

    1. 问题由来 面试的时候被问到了各种编码方式的区别,结果一脸懵逼,这个地方集中学习一下. 2. 几种字符编码的方式 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符 ...

  5. Java web中常见编码乱码问题(二)

    根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析:   2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...

  6. java IO之 编码 (码表 编码 解码 转换流)

    编码 什么是编码? 计算机中存储的都是二进制,但是要显示的时候,就是我们看到的却可以有中国 ,a  1 等字符 计算机中是没有存储字符的,但是我们却看到了.计算机在存储这些信息的时候,根据一个有规 则 ...

  7. Java应用中的编码问题(转载)

    第三篇:JAVA字符编码系列三:Java应用中的编码问题这部分采用重用机制,引用一篇文章来完整本部分目标.来源:  Eceel东西在线 问题研究--字符集编码 地址:http://china.ecee ...

  8. JAVA字符编码三:Java应用中的编码问题

    第三篇:JAVA字符编码系列三:Java应用中的编码问题 这部分采用重用机制,引用一篇文章来完整本部分目标. 来源:  Eceel东西在线 问题研究--字符集编码  地址:http://china.e ...

  9. java、js的编码、解码

    如果在地址栏挂载参数,特别是包含中文,往往要进行编码,取值时再解码,以下是java和js中编码.解码的各自方法. java: @Test public void test3() throws Unsu ...

随机推荐

  1. 用.NET做动态域名解析

    用.NET做动态域名解析 动态域名解析,或DNSR,通常用于解析IP地址经常变化的域名.电信网络提供了公网IP,给广大程序员远程办公.内容分享等方面带来了极大的便利.但公网IP是动态的,它会经常变化, ...

  2. maven 打包构建相关命令

    1.命令 mvn clean package 依次执行clean.resources.compile.testResources.testCompile.test.jar(打包)等7个阶段. mvn ...

  3. freemarker属性配置

    freemarker属性配置: spring.freemarker.allow-request-override=false # Set whether HttpServletRequest attr ...

  4. Java8新特性——lambda函数式编程

    一.遍历循环 /** * @author jiaqing.xu@hand-china.com * @version 1.0 * @name * @description 循环遍历 * @date 20 ...

  5. 非对称加密openssl协议在php7实践

    据网上资料,RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商务中RSA被广泛使用.RSA是1977年由罗纳德·李维斯特(RON RIVEST).阿迪·萨莫尔(ADI SHAMIR)和伦纳德· ...

  6. Lxde添加触摸板双击功能、防误触

    前言 本文链接:https://www.cnblogs.com/hellxz/p/linux_touchpad_settings.html 这时简单记录一下最近两天折腾Lxde的触摸板功能的设置,留待 ...

  7. MangoDB的下载和安装

    ​ 前面已经简单介绍了MongoDB,今天我们就要正式学习他了,话不多说,咱先来安装. 1.现在MongoDB已经到了4.0版本,咱先去官网下载,MongoDB官网传送门,下载的版本信息如下,点击Do ...

  8. ELK系列(二):.net core中使用ELK

    ELK安装好后,我们现在.net Core中使用一下,大体思路就是结合NLog日志组件将数据写入ELK中,其它语言同理. ELK的安装还是有些复杂的,我们也可以在Docker中安装ELK:docker ...

  9. mybatis - 通用mapper

    title: 玩转spring-boot-mybatis date: 2019-03-11 19:36:57 type: "mybatis" categories: mybatis ...

  10. Android self_adaption of screen

    以下是Demo首页的预览图 demo下载:http://www.eoeandroid.com/forum.php?mod=attachment&aid=NjE0Njh8ZTIyZDA2M2N8 ...