在c++中如果是这样一个string a="中国";
那么它的长度就是4
但是在c#中这样一个语句下来长度就变成了2
而这么一来
原有程序有个判别是否为生僻字这一块
就出现了问题
因为处理过程是把其打到char[](比如“中国”就是四个元素)里然后取一个汉字的第一个字节转换成高字节判断再取一个汉字的低字节进行判断
但是在c#中,打到char[],这样比如“中国”就是两个元素了,无从谈起怎么判别是否为生僻字了请问是否有其它的解决方法

解决方案 »

  1.   

    string str = "中国";
    Encoding encode = Encoding.GetEncoding("GB2312");
    byte[] by = encode.GetBytes(str);
      

  2.   

    C#中char是两字节的吗?
    如果是这样,那可以用一个Byte数组接收。
      

  3.   

    返回来的by中包含4个字节,by[0].ToString("x")是中的高位,by[3].ToString("x")是国的高位,
      

  4.   

    错了,应该如下:by[0].ToString("x")是中的高位,by[2].ToString("x")是国的高位,
      

  5.   

    C++中的char对应到C#里面的byte。
    用Encoding.Default.GetBytes就能将string转换成byte[]
      

  6.   

    关注http://Vip.ghry.cn/Qb/vip.htm?QQ=269269&id=400030888011
    喜讯,腾迅为迎接到来的五一劳动节,现在开放六位 QQ 号码免费申请,数量有限,送完即止
      

  7.   

    if(Encoding.Default.GetByteCount(strVal)   !=   strVal.Length)
    {
            //包含双字节
    }