Java:编码

字符编码

因为计算机只能存储和处理二进制数,所以自然语言需要经过某种映射关系才能展示在计算机中

字符集:字符的集合

  • ASCII字符集:美国常用字符集
  • IOS-8859-1字符集:西欧常用字符集
  • GB2312字符集:简体中文常用字符集
  • GBK字符集:GB2312升级版集
  • BIG5字符集:繁体中文常用字符集
  • Unicode字符集:全球统一字符集

字符编码:以何种映射规则将字符转换为二进制数
字符解码:以何种映射规则将二进制数转换为字符

  • ASCII编码:以7位(bits)表示一个字符
  • GBK编码:以GBK字符集为基础,ASCII字符为一个字节,非ASCII字符为两个字节的编码
  • BIG5编码:以BIG5字符集为基础,ASCII字符为一个字节,非ASCII字符为两个字节的编码
  • ANSI编码:ANSI不是指某种具体的字符编码,而是指当前系统的字符编码
  • Unicode编码:以Unicode字符集为基础,所有字符都为两个字节
  • UTF-8编码:以Unicode字符集为基础,ASCII字符为一个字节,其他字符为一到三个字节(变长编码),中文字符一般是三个字节
    UTF-8是Unicode的一种变种,便于节省空间

URL编码

由于URL中某些字符具有特定含义(=、&等),所以为了避免字符歧义需要对URL进行编码

import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

public void test(){
	//定义一个URL
	String url = "http://127.0.0.1:80/test?name=赵&大&土&age=26";
	//URL编码
	String encode = URLEncode.encode(url, String.valueOf(StandardCharsets.UTF_8));
	
	//URL解码
	String decode = URLDecode.decode(encode, String.valueOf(StandardCharsets.UTF_8));
}

Base64编码

Base64编码是二进制数与65个字符(0-9、a-z、A-Z、+、/、=)的映射规则(=字符仅作补位),可以将不可见字符转换为可见字符,最早使用在邮件中传输二进制文件(图片、音视频),因为邮件传输协议只支持ASCII字符

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public void test(){
	//定义一个字符串
	String str = "我是一个字符串";
	//Base64编码
	String encode = Base64.getEncoder.encodeToString(str.getBytes(StandardCharsets.UTF_8));
	//Base64解码
	String decode = Base64.getDecoder.decode(encode.getBytes(StandardCharsets.UTF_8));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值