a$ = ChrB(127) & ChrB(234) & ChrB(248) & ChrB(123)
For i = 1 To LenB(a$)
 Print AscB(MidB(a$, i, 1))  '还原
Next i

解决方案 »

  1.   

    关注我也遇到了这个问题。大于128的整数的Chr()值用asc()返回的都是0,怎么解决?
      

  2.   

    我说的“Chr(127) & Chr(234) & Chr(248) & Chr(123)”是在dos环境下生成的一个字符串,不是在VB中由ChrB()生成的。huxiangming(老虎)兄的回答有误.
      

  3.   

    To huxiangming(老虎) ChrB()和Chr()不一样,后者用你的方法好象不行!
      

  4.   

    中文Windows使用的是双字节字符集(DBCS)系统。DBCS系统使用0-128之间的数字表示ASCII字符,大于128的数字仅作为前导字符,它只是显示是一个非拉丁语系的字符,而并不代表实际意义。在调用CHR()函数时用到了DBCS字符集,这样用Chr生成的字符128以上的本来就没有了,谈不上还原了。dos下应该没有这个问题。用AscB应该可以还原的。