编码解码乱码字符集[通俗易懂]

编码解码乱码字符集[通俗易懂]编码EnCode:将字符转化为字节解码DeCode:将字节转化为字符乱码:打个比方—比较多人知道的联通用字符集GBK的时候出现这样的情况:��ͨ,这就是乱码常见的中文字符集有:GBK和UTF-8国际上常用的字符集:Unicode(大字典)、ANSI UTF-8,中文占三个字节,英文占一个字节(变长),还有定长占两个字节(耗费空间多)GBK,中文占两个zijie…

大家好,又见面了,我是你们的朋友全栈君。

编码EnCode:将字符转化为字节

解码DeCode:将字节转化为字符

乱码:打个比方—比较多人知道的联通 用字符集GBK的时候出现这样的情况:��ͨ,这就是乱码

常见的中文字符集有:GBK 和 UTF-8

国际上常用的字符集:Unicode(大字典)、ANSI

 

UTF-8,中文占三个字节,英文占一个字节(变长),还有定长占两个字节(耗费空间多)

GBK,中文占两个zijie

 

下面模拟编码:

我的默认的编码字符集为:

编码解码乱码字符集[通俗易懂]

import java.io.UnsupportedEncodingException;

/**
 * 编码:将字符转化为字节
 * @author Administrator
 *
 */
public class MyEnCode {
	public static void main(String[] args) throws UnsupportedEncodingException {
		String msg = "性命生命使命a";
		
		//默认字符集编码,这里默认为GBK
		byte[] datas = msg.getBytes();
		System.out.println(datas.length);
		
		//使用不同字符集编码,如UTF-8
		datas = msg.getBytes("UTF-8");
		System.out.println(datas.length);
	}
}

 结果显示:

13
19

说明:不同的字符集得到的字节数是不一样的

 

下面模拟解码的情况:

import java.io.UnsupportedEncodingException;

/**
 * 编码:将字符转化为字节
 * 解码:将字节转化为字符
 * @author Administrator
 *
 */
public class MyDeCode {
	public static void main(String[] args) throws UnsupportedEncodingException {
		String msg = "性命生命使命a";
		//编码
		byte[] datas = msg.getBytes();
		
		//解码
		msg = new String(datas,0,datas.length,"GBK");
		System.out.println(msg);
		
		//乱码:
		//(1)字节数不够
		msg = new String(datas,0,datas.length-2,"GBK");
		System.out.println(msg);
		
		msg = new String(datas,0,datas.length-1,"GBK");
		System.out.println(msg);
		
		//(2)没有使用和默认一样的字符集
		msg = new String(datas,0,datas.length-1,"UTF-8");
		System.out.println(msg);
	}
}

 结果:

性命生命使命a
性命生命使?
性命生命使命
???????????

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138745.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 笔记本电脑用久了卡顿解决方法视频_win7严重卡顿

    笔记本电脑用久了卡顿解决方法视频_win7严重卡顿第一步:点击我的电脑或者此电脑选中C盘(最好是每哥盘都做下面的操作)右键点击然后选中属性如图所示:点击磁盘清理然后继续选择其中需要清理的,其实都可以清理。第二步:然后点击选择工具,选择优化如图所示第三步:选择其中的一个盘如有分析就先点击分析,然后点击优化如图所示:第四步:桌面的东西能清理就都清理掉,桌面最好就只保留一两个东西。第五步:删除C盘下面中Web里面的所有东西,是删除Web里面的所有东西,不是Web文件夹,还有删除Temp文件夹下面的所有东西,不要删除Temp

    2025年10月31日
    1
  • 研究发现VR有效地减少了不舒服的医疗过程中的痛苦_怎样照顾半身不遂的病人

    研究发现VR有效地减少了不舒服的医疗过程中的痛苦_怎样照顾半身不遂的病人VR虚拟现实到底给了半身不遂的病人什么?

    2022年4月21日
    42
  • 项目开发中编写的文档

    软件开发中文档的编写是一个不可缺少的环节,常见的如《需求分析》、《概要分析》、《数据库设计》等。在“软件人”的阵营里向来存在两种观点,注重文档还是关心代码。一直争论多少年了,好像都没有一个真正的定乱。

    2021年12月21日
    38
  • MyBatis插件_mybatis插件实际应用

    MyBatis插件_mybatis插件实际应用2018年2月更新2017.3可用,提供一个网上比较多的一个版本V3.21版本,下载资源里面有个已整合版直接解压放入C:\Users\你的用户名\.IntelliJIdea2017.3\config\plugins这个文件夹即可CSDN下载注意:有些人就是不成功!因为你的IDEA版本太老了,不支持3.21这个…

    2022年10月7日
    3
  • 安卓 Android之开发简单小应用(一)

    安卓 Android之开发简单小应用(一)安卓Android之开发简单小应用(一)一、简述  记–没学过Android之开发简单小应用。(课程设计作业)  例子打包:链接:https://pan.baidu.com/s/1LEQ1oWkUX8OmtfCFVydxWQ密码:9o0d二、环境搭建软件打包:链接:https://pan.baidu.com/s/1VVsZqPrwOtvMuzeeJE1y_A密…

    2022年6月15日
    30
  • 有关微信登录小程序接口40029报错

    有关微信登录小程序接口40029报错有关微信登录小程序接口40029报错微信的报错信息errcode:40029,errmsg:"invalidcode,hints:[req_id:HQd79a0747th31]我的可能是例外,但是应该不是个例!微信验签等代码是copy上一个项目的!而且我的项目用上一个的小程序/公众号写过测试,小程序/公众号中做过相应配置!所以以上错误很可能是你的APPID和app_…

    2022年5月5日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号