看到这个标题,估计已经有小伙伴知识本文要讲什么了,好,下面我们就开始正文
很多老师的书和视频中,在安装完jdk,配置好环境变量,都会带大家用记事本写一个HelloWorld,然后在cmd中来编译,运行,来,我们来一起再做一遍
这应该是很多小伙伴梦开始的地方,然后我们在cmd中执行
多么的熟悉啊。 老师讲完这之后,可能开始讲,这只是个示例,实际开发中,我们很少用命令行去操作的,更多的,我们会去用idea/eclipse去写代码 ,然后我们开始下载eclipse,,,, 但是,命令行的故事并没有结束
有些小伙伴说,不行,我英文不行,下面我们把hello world换成中文 “你好,java” ,开始我们和java的故事
小demo写完了,现在我们要回到ide上继续开发了,这回来一看,不得了,,不认识了
这里要请大家注意如上图的两个地方,上面是乱码,下面是以 UTF-8
的编码集去读取这个文件。现在一读,乱码了,说明什么,真相只有一个,那就是这个文件不是utf-8
的。
下面我们用一段代码来模拟utf-8
来读取这个文件
这样读出来确实都是???,看来记事本默认保存的并不是utf-8,那我们再试试gbk
按常理来说,能显示中文的,不是utf-8就是gbk
看,我们改成gbk
之后就能读出来了。
为了能让他能在vscode中显示出来,我们再把String转成utf-8
的形式存进去
public static void main(String[] args) throws Exception { byte[] bytes =Files.readAllBytes(Paths.get("com/fenxiangtech/study/note/hello.java")); String out = new String(bytes,"gbk"); byte[] newBytes = out.getBytes("utf-8"); Files.write(Paths.get("com/fenxiangtech/study/note/hello.java"), newBytes, StandardOpenOption.WRITE); }
看,这样用utf-8打开就没问题了,这时候,有学生来问了,说,老师刚才那个cmd的我不会,能再输出一遍看看吗?
好的,那我们就再输出一遍
咦,我们的你好呢? 这个就留做一个思考题给各位小伙伴,大家一起来想一想为什么
写到这里,其实本文内容已经不少了,明天我们再正式聊一聊GBK,UTF-8 ,现在先提个引子,其实GBK,UTF-8也是一个类,相关的编码和解码方法,可以从类的结构中大致看出一二,有兴趣的小伙伴可以先了解下哦