zoukankan      html  css  js  c++  java
  • 开发中遇到的编码问题(转)

    在工作中遇到一些概念模糊的地方, 需要记住了
    bit意为“位”或“比特”,是计算机运算的基础;
    byte意为“字节”,是计算机文件大小的基本计算单位;

    说到usb2.0标准接口传输速率。许多人都将“480mbps”误解为480兆/秒。其实,这是错误的,事实上“480mbps”应为“480兆比特/秒”或“480兆位/秒”,它等于“60兆字节/秒”,大家看到差距了吧。

    这要从bit和byte说起:bit和byte同译为"比特",都是数据量度单位,bit=“比特”或“位”。
    byte=字节即1byte=8bits,两者换算是1:8的关系。
    mbps=mega bits per second(兆位/秒)是速率单位,所以正确的说法应该是说usb2.0的传输速度是480兆位/秒,即480mbps。
    mb=mega bytes(兆比、兆字节)是量单位,1mb/s(兆字节/秒)=8mbps(兆位/秒)。

    我们所说的硬盘容量是40gb、80gb、100gb,这里的b指是的byte也就是“字节”。
    1 kb = 1024 bytes =2^10 bytes
    1 mb = 1024 kb = 2^20 bytes
    1 gb = 1024 mb = 2^30 bytes

    比如以前所谓的56kb的modem换算过来56kbps除以8也就是7kbyte,所以真正从网上下载文件存在硬盘上的速度也就是每秒7kbyte。
    也就是说与传输速度有关的b一般指的是bit
    容量有关的b一般指的是byte

    最后再说一点: usb2.0 480mbps=60mb/s的传输速率还只是理论值,它还要受到系统环境的制约(cpu、硬盘和内存等),其实际读、取写入硬盘的速度约在11~16mb/s。但这也比usb1.1的12mbps(1.5m/s)快了近10倍。


    1、说到编码,最大的问题就是乱码了,为啥会有乱码呢 ?

    因为字符在编码和解码的时候,用的编码字典不一致,从而导致了乱码,常见的编码有ASCII、GBK、GB2312、UTF-8、UTF-16等。

    2、为啥需要编码呢?

    因为计算机的存储是二进制的,也就是01010这种形式的,这样一些中文、法文、俄文等,就需要编码解码才可以达到效果。

    3、java中数据类型的转换是啥?

    bit(位)、byte(字节)、char(字符)

    1byte == 8bit      一位二进制称为一个bit,一个byte的取值范围是-128~127

    1char == 2byte   char是字符类型,取值范围是0~65535

    1char == 16bit    一个char是16个二进制位

    1字母 == 1byte == 8bit

    1汉字 == 2byte == 16bit

    char可以表示中文,但是byte不可以;

    char可以表示一个整数,不可以表示负数,byte可以表示-128到127的数值;

    char、byte、int对于英文字符,可以相互转换;

    1Kb == 1024bit   1KB ==1024byte ==1024*8bit

    4、java和unicode的关系?

    Unicode包含两个概念,一个是字符集,一个是编码方式,utf-8是Unicode的其中一种编码方式。

    JVM默认编码是GBK,也就是底层编码环境是GBK编码。String是Unicode的,当读取外部的数据,如果没有指定的解码方式,它会根据JVM默认编码来解码外部数据,即从JVM默认编码来解码外部数据。当然也可以指定需要的解码方式。

    Unicode将世界所有的符号纳入其中,每一个符号分配一个独一无二的编码,是一个很大的集合,可以容纳100多万个字符

    5、使用不同的编码解码方式,可以负负得正吗?

    当然不行,因为在编码解码的过程中,如果没有对应的字典,可能出现丢失数据的情况,这样就没有办法负负得正了。

    http://iamzhongyong.iteye.com/blog/2070106

  • 相关阅读:
    Servlet项目 创建方法
    1. 连接数据库
    Jsp application对象(全局变量)
    Jsp session属性、方法
    让python 3支持mysqldb的解决方法
    Python读写文件(进阶)
    python操作MongoDB
    使用Python Pandas处理亿级数据
    SurfingTheInternet
    matplotlib中日期显示(不显示为科学计数法)
  • 原文地址:https://www.cnblogs.com/softidea/p/4336039.html
Copyright © 2011-2022 走看看