我们知道正常的ASC到127,之后的为扩展ASC码。
现需要做一个软件,需要用到扩展ASC码。
我的系统为英文,工具为VB6.0,输入扩展ASC转换时,字符对应就不对了。
如:é,查表为130,但asc("é")返回的是233
有谁可以帮忙解释下!是否函数是使用不正确?
有什么具体的说法不?
谢谢!

解决方案 »

  1.   

    试了一下asc("é")返回是-22362,与你不同
    是Unicode码
      

  2.   

    ascw?在英文下,那个字符就像dos下的了
      

  3.   

    The range for returns is 0 – 255 on non-DBCS systems, but –32768 – 32767 on DBCS systems.试试ascb
      

  4.   

    在纯dos下输入 alt + 130确实是é,但是在windows下,建一个文件,输入é,保存,用winhex查看,又确实是233。
      

  5.   


            Dim EnAsc As New Text.ASCIIEncoding
            Dim EnUtf8 As New Text.UTF8Encoding
            Dim EnUtf32 As New Text.UTF32Encoding
            Dim EnUni As New Text.UnicodeEncoding        Console.WriteLine(Asc("é"c))'-22362
            Console.WriteLine(AscW("é"c)) '233 = &HE9
            Console.WriteLine(ChrW(233)) 'é        Console.WriteLine(BitConverter.ToString(EnAsc.GetBytes("é"c))) '3F
            Console.WriteLine(BitConverter.ToString(EnUtf8.GetBytes("é"c))) 'C3-A9
            Console.WriteLine(BitConverter.ToString(EnUtf32.GetBytes("é"c)))'E9-00-00-00
            Console.WriteLine(BitConverter.ToString(EnUni.GetBytes("é"c)))'E9-00
         
      

  6.   


     dim aa() as byte
     aa=strconv("é",vbFromUniocde)
     msgbox(aa(0))试这一段
      

  7.   


    总结楼上:
    1.ascb2.dim aa() as byte
     aa=strconv("é",vbFromUniocde)
     msgbox(aa(0))