在网络上传输字符前采用的是ASCII码形式编码,在网络的另一端接受者采用utf-8的形式接受,能否正确接受其中的中文字符呢?我个人的理解是这样的,字符在传输前都会转换成相应的byte数组形式,ASCII码编码时,对于英文字符会找到相应的byte值,而对于中文字符,找不到与其对应的byte值,但是也会以特定的byte存储。当接受时,如果采用ASCII吗形式接受,接受到中文汉子的byte时,找不到对应要显示的字符,所以显示为乱码,而以utf-8方法接受时,能够读到ascii吗方式编码的汉子的byte值,并且能够识别出是汉子,并显示出来。所以,我认为采用utf-8形式接受能够显示中文字符。不知道我这样想对不对,希望大家能够指点迷津,谢谢啦。

解决方案 »

  1.   

    LZ
    但是也会以特定的byte存储  你这一句话就是编码了,如果你置顶用UTF8编码,接收就用个UTF8解码
      

  2.   

    LZ
    但是也会以特定的byte存储--->你这一句话就是编码了,如果你指定用UTF8编码,接收就用个UTF8解码
      

  3.   

    看过篇这样的文章不过记不太清了,大概意思是:utf-8,utf-16,gbk什么的所占用的字节数好像都不一样的。比如utf-16占4个字节,utf-8占2个字节,而你是以utf-16的编码发送的,用utf-8的编码接收,那么你接收到的就是两个utf-8字符(你想想一个utf-16的被你拆成两个 utf-8的,能不乱吗?)。所以最好是像ls两位说的 字符编码统一。