・ 对应Unicode,UTF-8的编码可参考如下:
普通英文占一个字节 格式是 0xxxxxxx
两个字节 格式是 110xxxxx 10xxxxxx
三个字节格式是 1110xxxx 10xxxxxx 10xxxxxx
四个字节格式是 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
如果一个完整的字是N个字节,那么首字节就有N个1加上0 , 后面的是数据区.
从第二个字节开始,前两个是10固定格式的,用于错误校验.后面的6位才是有用的.
看个例子:以全角的逗号","为例
(1), 其Unicode是:FF0C(H),即:1111 1111 0000 1100(B)有人会问,怎么获
得这个值呢?有很多方法,我推荐可以用 “ 开始 → 运行 → 输入“charmap” ”,
打开"字符映射表",在其中进行查询即可。
(2), 好了,在用Java环境中,用以下语句获得其UTF-8的值:
String str = ",";
byte[] byteArr = str.getBytes(); //Java环境中默认的就是UTF-8编码,注意不是Web环境
for(byte by : byteArr) {
System.out.print(String.format("%X", by) + "\t");
}
其结果就是:EF BC 8C,即: 1110 1111 1011 1100 1000 1100(B)
我将校验区都标上了红色,我们关心的是数据区,再整理一下看看,又成了 1111 1111 0000 1100(B),
即:FF0C(H),同上面所得到的Unicode值相同了。