utf-8和base64啥区别啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了utf-8和base64啥区别啊?相关的知识,希望对你有一定的参考价值。

答:
可以这么理解,iso88591和utf-8编码是为了语言的需要。比如说中文可以用utf-8编码,但是不能用iso88591这种编码,因为iso88591设计的时候就没有考虑过中文汉字那么多,因此只能显示字母数字和一些符号,而utf8这种变长编码可以容纳非常多的字符,可以用来表示足够多的汉字。所以一个utf8编码的文本用只支持iso88591的编辑器打开就会乱码。


而url编码和base64编码则完全不同。比如url编码只是为了将一些http请求中不支持的特殊字符转换成支持的字符组合。base64编码则是从二进制层面来说,将二进制流使用64个字符的组合表示。

以下是base64参数表

参考技术A 区别如下:

一、utf-8和base64进制不同

base64:
1、包含A-Z a-z 0-9 和加号“+”,斜杠“/” 用来作为开始的64个数字. 等号“=”用来作为后缀用途,采用2进制。常用于邮件,使用范围最广。
urlencode:
除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。使用环境:json是有编码区别的,只支持utf-8。

二、编码方式不同。

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

三、使用情况不同。

要在多语言环境中通用,那就是要使用UTF,这可以理解为存储数据格式。用了UTF是让大家都能识别数据,不然就会乱码。

base-64的话,不是底层存储格式,只是为了数据交换用有。比如图片变成字符格式,这是一种应用格式。
参考技术B utf8 用于编码。
base64 用于加密。
这么说可以吗→_→,←_←
参考技术C UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。追问

何时用utf-8编码何时用base-64编码?

追答

要在多语言环境中通用,那就是要使用UTF,这可以理解为存储数据格式。用了UTF是让大家都能识别数据,不然就会乱码

base-64的话,不是底层存储格式,只是为了数据交换用有。比如图片变成字符格式,这是一种应用格式

本回答被提问者和网友采纳

以上是关于utf-8和base64啥区别啊?的主要内容,如果未能解决你的问题,请参考以下文章

Java里,,啥是二进制? 啥是base64?他们有啥区别?

base64 和 urlencode的区别

Java Base64加码解码 Base64.encodeBase64 ( ) 和 new BASE64Enccoder( ).encode( )区别

base64编码是啥意思啊?

急急!帮我看看下面几个CentOS版本,我要选择哪个啊,有啥区别?

使用 IOUtils 和 ImageIO 写入图像文件有啥区别