哈喽,大家好,我是指北君。,最近看《狂飙》了吧,大嫂气场十足!飒爽!,Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符 设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。,字符集当然是字符的集合,那么字符呢?你看到这篇文章的每个字母、中文或标点符号,就是一个个字符。,在计算器出现的早期,计算机仅支持的字符集为ASCII,其对应的字符就能够满足当时的使用需求,但随着计算机的发展,在计算机上需要显示的内容越来越复杂, 各个国家不同厂商都有自己的实现标准,然而有没有谁能够兼容世界所有的文字,因此产生了各种字符集,比如ASCII、ISO-8859-1、GB2312、BIG5等等。,为了实现人和计算机间的交流,我们只认识字符,计算机只认识二进制数据,字符编码即实现将字符转换成机器码进行存储、使用的的一种技术手段。,Unicode是字符集,而不是编码方式。,字母、文字、数字、标点符号、图形符号等字符的集合。表示了字符到二进制比特位的映射关系,ASCII,GB2312,字符对应二进制字节表示后的编码规则以及存储形式。,Unicode编码模型包含五层:,下面是unicode与unf8的映射表,我们通过字符的unicode码点(对应的16进制编码)可以找到对应的utf-8格式并进行编码转换最终实现物理存储。,那么unicode字符如何转换成utf8编码呢?,BOM 是 Byte Order Mark 的缩写。是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。这个标记是可选的, 因为UTF8字节没有顺序,所以它可以被用来检测一个字节流是否是UTF-8编码的。,在java中,我们通过\u开头来表示unicode编码,比如上面的\u6211,则表示的是“我”。,看下面这段代码,你觉得会输出什么?,当然是“Hello World”了,不要觉得//后面的代码全部会被解析为注释,前提是没有换行符,然而\u000d恰好会被解释为换行符,这样其后面的代码会作为新的一行进行解析, 这也是为什么会有这样的输出结果了,通过下面的命令可以对java源文件进行编译:,javac ./Main.java -encoding utf-8,window环境默认编码为gbk,要知道java作为一门高级静态语言,需要通过编译后才能交由JVM加载使用的,在java文件编译前还会经历对源代码进行词法分析、语法分析、语义分析等等,最后生成class文件后,才能被JVM加载。而源文件中\u开头的字符则是在这个过程中被解析并处理的。,unicode作为世界统一编码,经历了很多变革,该篇主要通过unicode让你对字符集以及字符编码有一个简单的认识。,
文章版权声明
1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/20630.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别