全网最全面、全详细的编码、解码知识( 三 )
- UTF-8已经逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码 。
- 互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码 。
- UTF-8编码使用一至四个字节为每个字符编码(其中ASCII字符集中的128个字符只占1字节,还有附加符文的拉丁文、希腊文等需要2个字节,其他常用的文字占用3个字节,还有极少数的字符占用4个字节) 。
- 它是实现了Unicode编码方案的一种可变长字符编码(定长码)
- 因为Unicode字符集中收录了很多字符,但是常用的一般不会超过65535个以外的字符,所以出现了UTF-16(2字节=16位) 。
- UTF-16优点: 它在空间效率上比UTF-32高两倍,因为每个字符只需要2个字节来存储(除去65535范围以外的),而不是UTF-32中的4个字节 。
- UTF-16缺点: 不兼容ASCII 。
- 它是实现了Unicode方案的一种定长字符编码 。
- 它使用4个字节的数字来表示每个字母、符号,或者表意文字(ideograph) 。
- 优缺点: 使用4个字节存储每个字符,效率高,处理速度快(因为不用计算需要几个字节进行存储),但是浪费空间 。
编码: 在屏幕输入文字 -> 根据指定编码类型 -> 将输入的文字编码成计算机能够识别的二进制数 -> 计算机存储编辑成的二进制数值

文章插图
解码: 计算机读取存储的二进制数值 -> 根据指定的解码类型解码 -> 将二进制数值解码成字符集中表达的字符 -> 在屏幕显示

文章插图
五:乱码出现的原因通过上面的例子,我们能够更加清楚编码和解码的过程 。同时,也看出了乱码出现的原因:
- 编码过程和解码过程使用的编码方式不一致
- 编码/解码对应的字符集不存在对应的字符
1. 编码过程和解码过程使用同一种编码方式
2. 使用支持需要编码解码的字符串对应的字符集

文章插图
七:经常遇到的乱码场景与解决一:IDEA工具出现乱码 File -> setting -> 输入File encoding -> 设置成对应的字符集

文章插图
二:MySQL数据库乱码和编码设置 通过控制台登录到mysql后:
- 查询当前默认的数据库编码方式:
show variables like 'character_set%'
文章插图
- 设置数据库编码方式
//当前会话,退出控制台后又恢复回原来默认的编码方式set character_set_server=utf8;set character_set_database=utf8;//全集范围,无论是否退出控制台,以后都是使用这个编码方式set global character_set_database=utf8;set global character_set_server=utf8;八:参考和感谢 1、w3c网站-字符集和字符编码(Charset & Encoding) 2、乱码的产生和解决
九:总结 相信看到这里,你对乱码的会有了更深的认识,学习一个知识,只有知道这个知识的原理,才不会感觉一知半解 。
感谢你阅读本文,如果你觉得文章哪里存在错误,欢迎私信或者在下方留言指出 。如果你觉得本文对你有一些帮助,可以给我一个点赞和关注,让我有更多动力给大家带来更多的文章,谢谢 。
关注公众号【是秘密呀joy】架构师视频、技术文章、面试资料、IDEA工具免费分享,不定时抽奖,只等你来!
【全网最全面、全详细的编码、解码知识】
推荐阅读
- 人民币|人民币兑日元升破20关口 日元贬值速度加快:留学生、海淘党最受益
- 中国位居世界第几 世界十大之谜排行榜
- 老人胸闷、胸口痛怎办冶疗
- 魔兽世界|大威天龙!《魔兽世界》10.0资料片《巨龙时代》官宣:新种族、新职业来了
- 补丁|《艾尔登法环》1.04补丁上线 帕奇新剧情、巨型武器增强
- 收入|全球手游收入TOP10:国内包揽前三、《王者荣耀》狂揽2.72亿美元!
- 手绘10张图,把CSRF跨域攻击、JWT跨域认证说得明明白白的
- 中乙|法律职业资格证书种类,A证、B证和C证的区别有哪些?我能考C证吗?
- 火把节是哪个民族的?
- 全球最重视教育的国家在哪?
