第一个java程序中文乱码以及如何解决
出现问题:编码gbk的不可映射字段
原因:.java文件的编码与cmd命令执行器使用的编码不一致
我们使用的.java文件的编码为UTF-8
Cmd默认使用的编码为GBK:
解决方式统一编码:
方法1:更改源文件编码为GBK与cmd.exe对应
更改编码为ANSI编码,对应的就是GBK编码,然后将乱码文字重新输入保存。(如果用的是电脑自带记事本,另存为存储的编码也更改为ANSI编码,然后注意内容不乱吗即可)
使用javac命令正常编译:
解决方法2:编译的时候指定以何种编码方式进行编码
使用javac命令增加 -encoding 参数指定编码方式实现:
命令:
Javac -encoding UTF-8 HelloWorld.java
运行
运行java程序我们使用的是java命令
Java .class文件名称
出现问题:UTF-8编码编写的java文件在不指定编码方式的时候可以成功编译
原因:
编译的过程是程序由.java文本->机器码(2进制)->.class文本的过程
不同的编码方式一个字符在计算机内的二进制计算的方式不一样
如UTF-8编码一个中文字符占3个字节,GBK中一个中文占2个字节。
‘你’ UTF-8可能存储为 00111010 00110101 01100000,GBK编码可能存储为 010100011 10111000
同样的内容UTF-8存储之后用GBK读取可能出现1.5个长度的内容,解析得到的内容也是和原来不一样的,如果解析不出来的话,那么就会报错不可映射字符,有些虽然可以解析出来但是与原文内容已经截然不同了。GBK存储用UTF-8存储也是同样道理。
这里你好世界转为机器码后用GBK读取是得到了有效字符序列的,但是内容混乱了,我们执行便知:
第一个java程序中文乱码以及如何解决的更多相关文章
- vc2010 win32 控制台应用程序中文乱码
vc2010 win32 控制台应用程序中文乱码 在 vc2010 上用 win32 控制台程序写些测试代码调用 windows api ,处理错误信息时,发现用 wprintf 输出的错误信息出现了 ...
- 一劳永逸Java环境配置,以及编写我的第一个Java程序
Java环境配置,以及编写我的第一个Java程序 配置步骤 1.下载jdk 2.安装步骤 3.配置环境 4.我的第一个Java程序 配置步骤 网上的教程有很多,方法也都不尽相同.今天我就分享一下我的配 ...
- 准备java编程软件与第一个java程序
我们要用的java的编程软件叫做:eclipse windows上安装eclipse 首先需要一个浏览器 要下载eclipse最简单的方式就是在官网下载 官网:https://www.eclipse ...
- 搭建java开发环境、使用eclipse编写第一个java程序
搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...
- Java起源、发展历程、环境变量、第一个Java程序等【1】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果,转载请标明原文链接: 本文原创作者:pipi-changing 本文原创出处:http://www.cnblogs.com/pi ...
- java ee 中文乱码的问题
java ee 中文乱码的问题 发生中文乱码的三种情况 (一) 表单form Post 方法 直接在服务器中设置 request.setCharacterEncoding("utf-8&qu ...
- 第一个java程序
完成自己的第一个java程序 1.新建一个文本文档,在文本文档中编写自己第一个java程序的代码,代码如下; class hello { public static void main(String[ ...
- Java编程-第一个Java程序
Java编程用到的IDE是Eclipse. 关于第一个Java程序实现的简单流程: (1) 下载eclipse (2) File-New-Java Project 命名工程名字:Hello ...
- 做为一个Java程序员,你需要哪些傍身的技能?
最近总有些断断续续的思考,想想从我入行以来,我到底学会了什么,做成过什么,以后要做什么,如何提升自己······· 工作3年了,常听人说3年,5年,10年是程序员的坎,每过一个都会有新的想法,新的改变 ...
随机推荐
- ArrayList 除重
看到一段简洁的 ArrayList 除重代码: protected final <T> List<T> removeDuplicates(List<T> list) ...
- hdu5236 Article
题目链接 概率DP $dp_i$表示连打$i$个字符的期望按键数 那么枚举保存的次数,均分一下连打的个数就好 #include<iostream> #include<cstdio&g ...
- GoldenGate实时投递数据到大数据平台(7)– Apache Hbase
Apache Hbase安装及运行 安装hbase1.4,确保在这之前hadoop是正常运行的.设置相应的环境变量, export HADOOP_HOME=/u01/hadoop export HBA ...
- zabbix部署相关
一.centos7 安装zabbix 二.zabbix 乱码问题 三.zabbix自动发现自动注册 四.zabbix3.4实现sendEmail邮件报警
- Linux 系统开启随机端口数量 调优
Linux系统随机端口 默认Linux系统开启的随机端口范围为 32768 ~ 65535.客户端连接服务监听端口需要使用到随机端口连接. Linux系统随机端口调优 1.添加内核配置参数:/etc/ ...
- mysqlbinlog相关
1.输出binlog到文件mysqlbinlog --base64-output=decode-rows -v /home/mysql/binlog/binlog.000011>/tmp/aa. ...
- npm 清理缓存
npm cache clean -f 有些时候npm下载资源出错,再次下载的时候可能因为之前错误的缓存造成一直下载不成功. 此时可以清一下npm的缓存,然后尝试重新下载
- Bootstrap3基础 text-uppercase/lowercase/capitalize 字母大写、小写和首字母大写
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- P1908 逆序对
传送门 这题似乎不应该出现在这里.. 日常做法(归并): #include<iostream> #include<cstdio> #include<algorithm&g ...
- js 过滤器
,,]; ary[] = ; ary.filter(function(x) { return x === undefined; }); // A. [undefined x 7] // B. [0, ...