在ASP里 asc () 函数取到的汉字的值是带符号的,都是负值  在.net 我用    char c = '国'
   
   (short) c 得到的值跟ASP里的值不一样   彻底迷糊了, 到底是为什么呢,哪位好心人能耐心给解释一下关于编码,和一些转换知识!

解决方案 »

  1.   

    System.Convert.ToChar(c) ?
    转换成ASC字符?是不是我的问题没写清楚啊
      

  2.   

    .net的字符集是基于unicode编码的,所以单个中文和单个英文字符所占的存储空间是一样的,都是双字节编码;而ASP里的asc缺省可能是ANSI编码格式,所以转换出来的值是不一样的。
    试一下
    byte[] unicodeByte = System.Text.Encoding.Unicode.GetBytes(c.ToString());
    byte[] ansiByte = Encoding.Convert(Encoding.Unicode,Encoding.Default,unicodeByte);
    看一下ansiByte里的值跟原来ASP里的值是否一致
      

  3.   

    ASC好象是ASCII编码吧,如果是那样,这样转
    byte[] unicodeByte = System.Text.Encoding.Unicode.GetBytes(c);
    byte[] asciiByte = Encoding.Convert(Encoding.Unicode,Encoding.ASCII,unicodeByte);