iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java中的编码转化方式有哪些
  • 200
分享到

java中的编码转化方式有哪些

2023-06-19 10:06:17 200人浏览 薄情痞子
摘要

这篇文章主要介绍“java中的编码转化方式有哪些”,在日常操作中,相信很多人在java中的编码转化方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中的编码转化方式有哪些”的疑惑有所帮助!接下来

这篇文章主要介绍“java中的编码转化方式有哪些”,在日常操作中,相信很多人在java中的编码转化方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中的编码转化方式有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、编码转换原理

1、为什么需要编码

很早之前计算机存储的就只是英文,一共26个英文字母。而且计算机存储信息的最小单位是一个字节8位,能够表示256个字符。这对于早起的英文来说足够了。即使是加上一些常见符号也足够。

后来随着时间的发展,中国、日本等国的计算机也开始蓬勃发展,于是计算机不仅仅要存储英文了,也开始存储中文了。但是中文我们都知道几万个太多了,一个字节肯定放不下。怎么办呢?一个字节表示不下,那就多用几个字节就好了。这几个字节在存储的时候还要再转化为bit,这时候就要涉及到编码了。 

2、编码方式

计算中提供了多种编码方式,常见的有 ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16 等。它们规定了转化的规则,按照这个规则就可以让计算机正确的表示我们的字符。

像GB2312、GBK、UTF-8、UTF-16等很多种方式都可以表示汉字,他们有什么区别呢?

(1)GB2312

它是双字节编码,总的编码范围是 A1-F7,其中从 A1-A9 是符号区,总共包含 682 个符号,从 B0-F7 是汉字区,包含 6763 个汉字。

(2)GBK

它的编码范围是 8140~FEFE(去掉 XX7F)总共有 23940 个码位,它能表示 21003 个汉字。

(3)UTF-8

而 UTF-8 采用了一种变长技术,每个编码区域有不同的字码长度。不同类型的字符可以是由 1~6 个字节组成。 

3、转码方式**

(1)IO流

这里就是面试问题的核心答案了,编码的目的上面已经说了,主要是字节和字符之间的转化。既然涉及到字节和字符很容易我们就能想到java中的io流。也就是说java中编码的转换其实就是IO流中的类来实现的。

java中的编码转化方式有哪些

最核心的就是上面几个类,当然这里只是给出了输入的一部分,还有一些输出的类。

(2)String

String类中也提供了一些转码的方法。下面我们会通过实例来说明。为什么String可以实现呢?这是因为String底层保存的其实就是一个一个字节,而且String还有方法直接转化为字符。所以String肯定也能实现。

(3)Charset

这个Charset是javaNIO中的一个类,整个流程就是读取数据,然后转化为byte,也就是字符。然后重新编码成字符就OK了。

下面我们使用代码来实现一下: 

二、代码实现

1、IO流

    public void convertionFile() throws IOException {
        File file = new File("D://fdd/java的架构师技术栈.txt");
        FileInputStream fis = new FileInputStream(file);
        InputStreamReader inReader = new InputStreamReader(fis, "gbk");
        FileOutputStream fos = new FileOutputStream(file);
        OutputStreamWriter outReader = new OutputStreamWriter(fos, "utf-8");
    }
    

2、String

    public void convertionString() throws UnsupportedEncodingException {
        String s = "java的架构师技术栈";
        // 正常情况下转码的过程
        byte[] b = s.getBytes("gbk");// 编码
        String sa = new String(b, "gbk");// 解码
        System.out.println(sa);
        // 错误状态下转码的过程
        b = sa.getBytes("utf-8");// 编码
        sa = new String(b, "utf-8");// 解码
        System.err.println(sa);
    }
   

3、Charset

    public void convertionCharset() throws IOException {
        Charset charset = StandardCharsets.UTF_8;
        // 从字符集中创建相应的编码和解码器
        CharsetEncoder encoder = charset.newEncoder();
        CharsetDecoder decoder = charset.newDecoder();
        // 构造一个buffer
        CharBuffer charBuffer = CharBuffer.allocate(64);
        charBuffer.put('A');
        charBuffer.flip();
        // 将字符序列转换成字节序列
        ByteBuffer bb = encoder.encode(charBuffer);
        // 将字节序列转换成字符序列
        bb.flip();
        CharBuffer cb = decoder.decode(bb);
    }

到此,关于“java中的编码转化方式有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: java中的编码转化方式有哪些

本文链接: https://www.lsjlt.com/news/295274.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中的编码转化方式有哪些
    这篇文章主要介绍“java中的编码转化方式有哪些”,在日常操作中,相信很多人在java中的编码转化方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中的编码转化方式有哪些”的疑惑有所帮助!接下来...
    99+
    2023-06-19
  • java转码方式有哪些
    java中的转码方式有:一、中文转码,使用UTF-8编码,使用字符串变量;二、字符转码,使用指定字符集,使用系统默认字符集;java中的转码方式有以下几种一、中文转码1)使用UTF-8编码进行转码request.setCharacterEn...
    99+
    2024-04-02
  • java中文编码转换的方法有哪些
    Java中常用的编码转换方法有以下几种:1. 使用`String`类的构造方法:```javaString str = new St...
    99+
    2023-08-16
    java
  • JAVA实现Base64编码的方式有哪些
    本篇内容主要讲解“JAVA实现Base64编码的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA实现Base64编码的方式有哪些”吧!定义: 二进制文件可视化Base64 是一种...
    99+
    2023-07-02
  • java序列化的方式有哪些
    Java序列化的方式有:1. 实现Serializable接口:在需要序列化的类中实现Serializable接口,该接口没有任何方...
    99+
    2023-09-27
    java
  • java序列化方式有哪些
    Java序列化方式有以下几种:1. Java默认的序列化:通过实现Serializable接口来实现,默认使用ObjectOutpu...
    99+
    2023-08-15
    java
  • javascript字符串转换成utf-8编码的方式有哪些
    这篇文章主要讲解了“javascript字符串转换成utf-8编码的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript字符串转换成...
    99+
    2024-04-02
  • php时间戳转化方式有哪些
    这篇文章主要讲解了“php时间戳转化方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php时间戳转化方式有哪些”吧!一、时间戳的获取在 PHP 中获取当前时间戳非常简单,可以使用 t...
    99+
    2023-07-05
  • java中日期格式转换的方法有哪些
    Java中日期格式转换的方法有以下几种:1. SimpleDateFormat类:通过指定的模式将日期转换为字符串,或者将字符串解析...
    99+
    2023-08-17
    java
  • java异步编程有哪些方式
    本篇内容介绍了“java异步编程有哪些方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么需要异步?操作系统可以看作是个虚拟机(VM),...
    99+
    2023-06-15
  • go实现base64编码的方式有哪些
    本篇内容主要讲解“go实现base64编码的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go实现base64编码的方式有哪些”吧!go的encoding/base64有四种编码方式:...
    99+
    2023-07-05
  • java修改源码的方式有哪些
    Java修改源码的方式有以下几种: 直接修改源码文件:通过文本编辑器打开源码文件,对其进行修改,保存后重新编译即可。 使用反射:通...
    99+
    2023-10-23
    java
  • wps中将pdf格式转化为word格式的方法有哪些
    这篇文章将为大家详细讲解有关wps中将pdf格式转化为word格式的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。转化方法:1、用wps软件打开pdf文档;2、点击“开始”选项卡,点击“PDF转...
    99+
    2023-06-14
  • Java格式化输出的方法有哪些
    这篇文章主要讲解了“Java格式化输出的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java格式化输出的方法有哪些”吧!Java控制台输出1.使用System.out.write...
    99+
    2023-07-05
  • java数组初始化的方式有哪些
    Java数组可以通过以下几种方式进行初始化:1. 静态初始化:在声明数组的同时为数组元素赋初值。```javaint[] arr =...
    99+
    2023-09-09
    java
  • java数组初始化方式有哪些
    java中数组初始化的方式有:1.静态初始化,由程序指定数组元素初始值,由系统指定数组长度;2.动态初始化,由程序指定数组长度,由系统指定数组元素默认值。java中数组初始化的方式有以下两种静态初始化静态初始化是指初始化时由程序指定每个数组...
    99+
    2024-04-02
  • Pandas进行数据编码的方式有哪些
    这篇文章主要介绍“Pandas进行数据编码的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Pandas进行数据编码的方式有哪些”文章能帮助大家解决问题。最近在知乎上看到这样一个问题为了方便...
    99+
    2023-06-30
  • js对url进行编码解码的方式有哪些
    使用encodeURIComponent()和decodeURIComponent()函数: // 编码 var encoded...
    99+
    2024-03-08
    JS
  • java异步编程的实现方式有哪些
    这篇文章主要介绍“java异步编程的实现方式有哪些”,在日常操作中,相信很多人在java异步编程的实现方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java异步编程的实现方式有哪些”的疑惑有所帮助!...
    99+
    2023-07-05
  • Grokking编码模式有哪些
    本篇内容主要讲解“Grokking编码模式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Grokking编码模式有哪些”吧!1.推拉窗滑动窗口模式用于对给...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作