第一个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年是程序员的坎,每过一个都会有新的想法,新的改变 ...
随机推荐
- 极致21点开发DAY1
最近在学习UI框架,无奈没有完整的项目学习,四处搜索找了这款游戏源码,在Unity2018上完美运行.于是乎开始学习开发这款游戏.今天主要完成的任务时拼UI.搭建了3个场景, StartScene, ...
- 常用模块 time sys os json pickle
# import time # print(time.time()) #秒数 # print('开始下载') # time.sleep(2) # print('下载完成') # print(time. ...
- python阶段性总结
一,学习方法 说起来我也是第一次学习python,一开始也是什么都不懂.当开始学习一个新的知识时,我觉得第一件事便是了解它的基本概念.一定要认认真真的阅读参考书至少一次,用笔勾画出你所认为的重点和难点 ...
- Codeforces 932G Palindrome Partition - 回文树 - 动态规划
题目传送门 通往???的传送点 通往神秘地带的传送点 通往未知地带的传送点 题目大意 给定一个串$s$,要求将$s$划分为$t_{1}t_{2}\cdots t_{k}$,其中$2\mid k$,且$ ...
- SublimeText3安装Highlight插件
本来机子上装的是版本3,试了试网上的教程,比如这个:http://qq920924960.blog.163.com/blog/static/221611034201411247318866/ 结果都不 ...
- R语言环境变量的设置 环境设置函数为options()
环境设置函数为options(),用options()命令可以设置一些环境变量,使用help(options)可以查看详细的参数信息. 1. 数字位数的设置,options(digits=n),n一般 ...
- pandas 对象中 to_pickle 方法参数命名问题,不能用frame
这句话一直报错,经过反复排查,是命名问题,to_pickle() 参数不能是 frame,换一个名字就可以了 frame.to_pickle('examples\local_frame_pickle' ...
- Roslyn
Roslyn 是以 API 为驱动的下一代编译器,集成在最新版的 Visual Studio 上.它开放 C# 和 Visual Basic 编译器的 API,使得开发者可以借助编译器进行解析代码文件 ...
- Redhat配置yum源(使用阿里云yum Repo)
1. 查看版本号和系统类别: cat /etc/redhat-release archor cat /etc/issue && arch 2.检查yum是否安装,以及安装了哪些依赖源并 ...
- Verification of Model Transformations A Survey of the State-of-the-Art 模型转换的验证 对现状的调查
模型驱动工程范式认为软件开发生命周期由工件(需求规范.分析和设计文档.测试套件.源代码)支持,这些工件是表示要构建的系统不同视图的模型.存在一个由模型转换驱动的(半)自动构造过程,从系统的抽象模型开始 ...