手动转Java字符串类型(char)为UTF-8格式

来源:互联网 发布:免费hifi播放软件 编辑:程序博客网 时间:2024/06/05 20:27

说实话我还想介绍下什么是unicode和utf-8,但是每次的介绍文总是会跑题然后越写越长,然后没填完丢弃在草稿箱…这次就只讲方式不介绍了。

unicode通常以十六进制显示在各地,
(差一个介绍十六进制的坑)
如“好”字以unicode显示:
597d
十六进制是二进制的缩写形式,于是我们也可以将十六进制还原回二进制:(差一个介绍十六进制转二进制的坑)
0101 1001 0111 1101

再来看一下UTF-8的码表
1 byte 0xxxxxxx 编号0~127(2^8 - 1)
2 byte 110xxxxx 10xxxxxx 编号~2047(2^11 - 1)
3 byte 1110xxxx 10xxxxxx 10xxxxxx 编号~65535(2^16 - 1)
4 byte 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx ...

我们要做的是将二进制的数字,从右往左填入一个长度足够的utf8码表中,很明显3byte长度的码表就足够了,这也是为什么汉字unicode转utf8时,会从2字节变为3字节。
填好:(一个怎么用代码填进去的坑)

0101 1001 0111 1101
xxxx0101 xx1001 01 xx11 1101
1110xxxx 10xxxxxx 10xxxxxx
11100101 10100101 10111101

然后将上面每个字节byte转为10进制,在代码中强转为byte并放入同一个数组,再利用String的重构方法传入byte数组和指定的字符集名,就能得到对应的字符串,输出后就能验证~

byte[] b = {(byte)229,(byte)165,(byte)189};String str = new String(b,"utf-8");System.out.println(str);
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大腿好粗怎么办 吃杨梅过敏怎么办 手指被砸肿了怎么办 买房首付不够怎么办 首付不够怎么办 老公提出离婚怎么办 被起诉离婚怎么办 妻子起诉离婚怎么办 老婆起诉离婚怎么办 谈恋爱没有话题怎么办 幼儿性格内向怎么办 脸上点痣留疤怎么办 脸上有黑痣怎么办 员工离职社保怎么办 狗狗走丢了怎么办 怀孕害喜怎么办 黑头越来越多怎么办 皮肤越来越黑怎么办 楼上房子漏水怎么办 屋顶漏水怎么办 头皮发红发痒怎么办 耻骨痛怎么办 脾气暴躁易怒怎么办 嘴巴太大怎么办 出现双下巴怎么办 葡萄树叶子发黄怎么办 贷款逾期了怎么办 贷款逾期怎么办 羊颠疯发病怎么办 网站被攻击怎么办 精神压力大怎么办 精神压力太大怎么办 压力性脱发怎么办 压力大脱发怎么办 压力太大失眠怎么办 生活压力太大怎么办 学习压力太大怎么办 孩子发育晚怎么办 想再长高怎么办 基金亏损了怎么办 韧带断裂怎么办