先扯一会男人胯下那两个东西
今天,朋友找我问一个在 WebBrowser 里加载 HTML 页面乱码的问题,帮她处理过以后,她嘟囔了一句 “编码什么的我完全不懂啊”……
这里的她,已经有三年的工作经验,大大小小的项目也参与过几个,可是对于这个问题,还是似懂非懂。
不只是她,其实还有好多工作多年的朋友对这个问题还不甚理解,因为工作原因,只知道出现乱码以后改改配置文件,开发工具里设置一下就能解决,深层次的原因,还是不很理解,或者是没必要理解,也不想去理解。
前段时间就有一个朋友,有点装逼的朋友,接触编程十来年了,工作也有七八年了,现在在一个在当地小有一些名气的软件公司任技术经理。我们合作了一个小项目,他用 Java 负责云端,我用 C# 做客户端。我设计了一个 Lincenses 生成、校验的算法,主要是拿硬件ID、设备编号、授权日期这些参数生成一个16位的注册码,使离线版的客户端能够被系统管控。为了避免轻易被猜解,我加了随机混淆的机制。当我把这个 Licenses 算法的 Java 版代码给他的时候,他死活不相信是我写的,甚至至今,提起那个项目,他还说我“网上找的算法”……~~~无语~~~多大个事儿啊,也就把源数据的编码转来转去拼拼凑凑处理一下而已,但是,他不会~~~
也确实,大多数编码的问题开发环境都替我们解决了,只在项目布署的时候,或者多方通信的时候,才会考虑编码问题。所以,很多人对“编码”这个东西并没有多深刻的理解。
啥是编码?
要说起“编码”这玩意儿,事实上一直伴随我们左右,甚至可以说是一个“最熟悉的陌生人”,比如:“邮政编码”。
“编码”的概念,在百科上是这样解释的:“编码是信息从一种形式或格式转换为另一种形式的过程也称为计算机编程语言的代码简称编码。用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。编码在电子计算机、电视、遥控和通讯等方面广泛使用。编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。”
简单来讲,编码是信息从一种形式或格式转换为另一种形式的过程。
概念比较抽象,我们还拿邮政编码来举例。
邮局,那个神奇的、无孔不入、无所不达又无比大爷的神奇机构,他们为了提高邮件的投递效率,为了快速的区分像 “中华人民共和国新疆维吾尔自治区 伊犁哈萨克自治州 察布查尔锡伯族自治县 奥依亚依拉克乡 奥依亚依拉克村村民委员会 古且末国历史文化遗址 申报联合国教育科学文化组织 世界非物质文化遗产工作领导小组办公室” 这种奇葩
