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

编码解码乱码字符集[通俗易懂]编码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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LBS定位技术「建议收藏」

    LBS定位技术「建议收藏」http://www.cnblogs.com/LBSer/p/3295642.htmlLBS定位技术从方法上可分成三类:基于三角关系的定位技术、基于场景分析的定位技术、基于临近关系的定位技术(唐毅和杨

    2022年8月2日
  • 数据库隔离级别理解「建议收藏」

    数据库隔离级别理解「建议收藏」1.为什么要选择隔离级别?通过例子说明隔离级别的必要性:假设一个场景,一对夫妻共用一个账户,妻子喜欢网上支付,丈夫喜欢刷卡支付。第一类丢失情况:整个过程中只有老公消费1000元,而最后时刻,老婆回滚事务,恢复到了原来的10000元,这不符合实际。这样的两个事务并发,一个提交,一个回滚导致的不一致成为第一类丢失更新,不过大部分数据库(mysql,o…

    2022年5月9日
  • 如何查看linux服务器cuda_[882]如何查看windows和linux的CUDA版本

    如何查看linux服务器cuda_[882]如何查看windows和linux的CUDA版本linux查看cuda版本cuda一般安装在/usr/local/cuda/路径下,该路径下有一个version.txt文档,里面记录了cuda的版本信息cat/usr/local/cuda/version.txt如何查看windows的CUDA版本CUDA是什么?CUDA(ComputeUnifiedDeviceArchitecture),是显卡厂商NVIDIA推出的运算平台。CU…

    2022年10月21日
  • 初识lldp协议

    初识lldp协议1、背景:问题:CDN的场景下,同组cache机器规划不规范,额外产生级联带宽,造成级联带宽跑满,导致丢包和速度变慢;愿景:1、平台支持扫描cache机在网络中的物理位置信息,作为cache机规划的依据,避免产生级联带宽;2、支持出口带宽和级联带宽的报警,当出现出口带宽大于级联带宽时,能报警提醒。当前,交换机使用两层交换机堆叠,外网核心下接外网

    2022年6月2日
  • Model_ModelMap_Map「建议收藏」

    Model_ModelMap_Map「建议收藏」Model_ModelMap_Map

    2022年6月18日
  • SQL 语言学习资料[通俗易懂]

    SQL 语言学习资料[通俗易懂]http://www.w3school.com.cn/sql/index.asp

    2022年10月6日

发表回复

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

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