栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java UTF-16字符编码

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java UTF-16字符编码

在UTF-16版本中,由于插入了一个标记来区分Big Endian(默认)和Little
Endian,因此获得14个字节。如果指定UTF-16LE,则将获得12个字节(小尾数,不添加字节顺序标记)。

参见http://www.unipre.org/faq/utf_bom.html#gen7


编辑- 使用此程序查看由不同编码生成的实际字节:

public class Test {    public static void main(String args[]) throws Exception {        // bytes in the first argument, enpred using second argument        byte[] bs = args[0].getBytes(args[1]);        System.err.println(bs.length + " bytes:");        // print hex values of bytes and (if printable), the char itself        char[] hex = "0123456789ABCDEF".toCharArray();        for (int i=0; i<bs.length; i++) { int b = (bs[i] < 0) ? bs[i] + 256 : bs[i]; System.err.print(hex[b>>4] + "" + hex[b&0xf]      + ( ! Character.isISOControl((char)b) ? ""+(char)b : ".")     + ( (i%4 == 3) ? "n" : " "));        }        System.err.println();       }}

例如,以UTF-8运行时(在其他JVM默认编码下,FE和FF的字符显示会有所不同),输出为:

$ javac Test.java  && java -cp . Test hello UTF-1612 bytes:FEþ FFÿ 00. 68h00. 65e 00. 6Cl00. 6Cl 00. 6Fo

$ javac Test.java  && java -cp . Test hello UTF-16LE10 bytes:68h 00. 65e 00.6Cl 00. 6Cl 00.6Fo 00.

$ javac Test.java  && java -cp . Test hello UTF-16BE10 bytes:00. 68h 00. 65e00. 6Cl 00. 6Cl00. 6Fo


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609951.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号