当前位置:   article > 正文

Java调试终端乱码问题_java远程调试显示错乱怎么解决

java远程调试显示错乱怎么解决

1.调试终端乱码问题

VScode官网中终端网站: https://code.visualstudio.com/docs/editor/integrated-terminal

1.1 命令控制行cmd中文乱码

WIN+R,输入cmd,输入chcp查看编码方式

图片名称

说明cmd默认使用GBK编码,需要输入:chcp 65001,修改为utf-8编码
右键选择属性,勾选丢弃旧的副本,实现永久更改

图片名称

1.2 VScode调试终端乱码问题

解决方法:
File–>Preference–>Settings
在搜索框中输入terminal.integrated.shellArgs.windows

图片名称

点击下面的Edit in settings.json
加入下面代码

"terminal.integrated.shellArgs.windows": ["-NoExit", "/c", "chcp 65001"]
  • 1

1.3乱码原因

字符串是系统把内存中的编码信息读取显示出来,当保存文件时系统就会把这个文件以我们所设置的编码方式编码,再放入内存中。

ASCII码

ASCII码使用7位2进制数表示一个字符,7位2进制数可以表示出2的7次方个字符,共128个字符,编码范围是0x00-0x7F。32 ~ 126(共95个)是字符(32sp是空格),其中48 ~ 57为0到9十个阿拉伯数字,65 ~ 90为26个大写英文字母,97~122为26个小写字母,其余为一些标点符号、运算符号等。

GBK编码

GBK编码是国家制定的一个专门用于编码汉字的一套编码方式。字符有一字节和双字节编码,00–7F范围内是一位,和ASCII保持一致,此范围内严格上说有96个字符和32个控制符号。之后的双字节中,前一字节是双字节的第一位。总体上说第一字节的范围是81–FE(也就是不含80和FF),第二字节的一部分领域在40–7E,其他领域在80–FE。

Unicode编码

如果有一种编码,将世界上所有的符号都纳入其中,无论是英文、日文、还是中文等,大家都使用这个编码表,就不会出现编码不匹配现象。每个符号对应一个唯一的编码,乱码问题就不存在了。这就是Unicode编码。Unicode固然统一了编码方式,但是它的效率不高,比如UCS-4(Unicode的标准之一)规定用4个字节存储一个符号,那么每个英文字母前都必然有三个字节是0,这对存储和传输来说都很耗资源。

UTF-8编码

UTF-8是一种针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符。

由此可见,使用GBK编码的字符只占用两个字节,使用UTF-8编码要占用三个字节,因此会出现乱码

参考资料:

彻底理解字符编码 http://www.cnblogs.com/leesf456/p/5317574.html
字符编码笔记 http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
计算机字符编码详解——从理论到实践 https://blog.csdn.net/xuejianhui/article/details/52650825

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/77251
推荐阅读
相关标签
  

闽ICP备14008679号