zoukankan      html  css  js  c++  java
  • 中文编码问题

        char foo='中';
    Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,
        采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;
        采用GB2312或GBK编码方式时,一个中文字符占2个字节;
        采用UTF-8编码方式时,一个中文字符会占3个字节。

    在C++中 

    在C++中,char是基础数据类型,8位,1个字节。byte不是基础数据类型,一般是typedef unsigned char byte;这样子的,也就是说,byte其实是unsigned char类型,那么也是8位,1个字节。不同的是,char可以表示的范围是-128-127,而byte可以表示的范围是0-255。 

    在Java中 

    在java中,char和byte都是基础数据类型
            byte和C++中的char类型是一样的,8位,1个字节,-128-127。
            但是,char类型,是16位,2个字节, 'u0000'-'uFFFF'。 

    为什么java里的char是2个字节? 

    因为java内部都是用unicode的,所以java其实是支持中文变量名的,比如string 世界 = "我的世界";这样的语句是可以通过的。 

    综上,java中采用GB2312或GBK编码方式时,一个中文字符占2个字节,而char是2个字节,所以是对的 


  • 相关阅读:
    浙大PAT CCCC L3-001 凑零钱 ( 0/1背包 && 路径记录 )
    二分图匹配
    Codeforces 939E Maximize ( 三分 || 二分 )
    冲刺第二周第七天
    冲刺第二周第六天
    冲刺第二周第五天
    构建之法阅读笔记04
    冲刺第二周第四天
    构建之法阅读笔记03
    构建之法阅读笔记02
  • 原文地址:https://www.cnblogs.com/the-wang/p/8638307.html
Copyright © 2011-2022 走看看