回答
张老师的一个问题。下面的回答虽然油嘴滑舌,但我承认这个问题本身比较有趣,属于有关UTF-8的基础知识,值得掌握。人家布老大都说了,如果你想请教他怎么写处理32位的编码解码程序,得交钱,还是美元。可见这个知识还是很有用的。
下面是回答:
困扰大半年?是看了
Bruce Eckel的帖子后来考您的吧?连测试的例子都和布老大的一模一样。
功夫在诗外啊。与其说是Java问题,不如说是
UTF-8编码问题。有兴趣的老大们自然可以去看
RFC3629。
魔鬼出于细节啊。偏偏这句话就把细节隐藏了:"UTF-8编码转换成字符串,再将结果字符串转换成UTF-8编码的字节数组"。用这句话来问我们这些Java程序员,明显假设编码和解码是对称的。天大的误会啊:
第一个字节:0xC0 = 11000000
第二个字节:0xB1 = 10110001
根据UTF-8的编码规则,我们去掉第一个字节的110,去掉第二个字节的10,于是得到真正的UTF-8字符:000000110001(我加了两个填位子的0)。这个等于0x31(也就是ASCII的'1'啦,和代码运行结果一致)。再根据UTF-8的编码规则,0x31小于0x007F,所以我们用一个字节把它编码为0x31,和ASCII的0x31等价。既然是ASCII,当然长度也就是1了哈。
P.S., 张老师这次很激动啊。标题用感叹号,变疑问为质问,属于语文不及格的初中生和喜欢匝匝呼呼的小女生在聊天室聊天的风格(注意,俺说的是风格,无关对错)哈。
嗯,解释完了。收工。回家。
更新:该了标题。利用张老师的名气赚点击。嘿嘿。
分享到:
相关推荐
张孝祥java面试宝典-2017 从享受生活的角度上来说:“程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做;第二...
JAVA\张孝祥IT课堂-Java03-面向对象(上).ppt
非常实用的java面试宝典,张孝祥老师写的。
Java基础加强--张孝祥版 传智播客
百度网盘:张孝祥Java就业培训教程 百度网盘:张孝祥Java就业培训教程 百度网盘:张孝祥Java就业培训教程 百度网盘:张孝祥Java就业培训教程 百度网盘:张孝祥Java就业培训教程 百度网盘:张孝祥Java就业培训教程 ...
超详细-张孝祥java面试宝典-完整版java面试必备 在不断的记忆中进步 巩固自己的知识
张孝祥Java邮件开发详解-高清扫描版-part1 绝对是精品 张孝祥的好书 。很大,分为2部分。
java 教程 下载 -张孝祥java视频教程56集
Java邮件开发详解-张孝祥 ppt Java邮件开发详解-张孝祥 ppt Java邮件开发详解-张孝祥 ppt
深入体验java web 开发内幕-高级特性 张孝祥 深入体验java web 开发内幕-高级特性 张孝祥 深入体验java web 开发内幕-高级特性 张孝祥深入体验java web 开发内幕-高级特性 张孝祥
张孝祥Java邮件开发详解
张孝祥java基础-> 张孝祥java高级-> 张孝祥javascript视频教程-> 俄罗斯方块视频教程-> 贪吃蛇游戏项目实战-> 张孝祥javaweb视频教程-> 张孝祥java邮件开发视频-> 传智播客Struts视频教程-> 传智播客hibernate视频...
张孝祥java就业培训视频教程 文件大概12.9G
张孝祥老师总结的java面试题,让大家面试的时候更有信心!
有著名Java讲师张孝祥老师倾力整理的Java程序员面试宝典,集结了各大公司招聘Java软件开发的面试笔试题,并分析了面试笔试心得。
张孝祥等八份JAVA面试资料总汇
张孝祥Java邮件开发详解-高清扫描版-part2
张孝祥java基础-> 张孝祥java高级-> 张孝祥javascript视频教程-> 俄罗斯方块视频教程-> 贪吃蛇游戏项目实战-> 张孝祥javaweb视频教程-> 张孝祥java邮件开发视频-> 传智播客Struts视频教程-> 传智播客hibernate视频...
传智博客--张孝祥--java培训课件以及源代码,希望对你有帮助,有用的话请留言哦,
张孝祥老师讲解java的多线程的配套ppt,很实用的