JScript可以接受你的数据,类型为Unknown
但这个数据,HTML表单好象不能放吧。
但是如果你是要传到服务器,
最好还是用VBS编码成16进制字符串了。

解决方案 »

  1.   

    tryvar result= VoiceManager.GetParams().toArray();
    alert(result.length);
      

  2.   

    回复人: karma(无为) (  ) 信誉:100 错误:'VoiceManager.GetParams()' 为空或不是对象
      

  3.   

    回复人: lostinet(Lostinet) (  ) 信誉:100 JScript (param是RegForm表单的一个hidden元素):RegForm.param.value = VoiceManager.GetParams();
    alert(RegForm.param.value);是可以显示字符串内容的
      

  4.   

    会不会从二进制变为UNICODE字符串啊?
      

  5.   

    what aboutvar result= (new VBArray(VoiceManager.GetParams())).toArray();
    alert(result.length);
      

  6.   

    回复人: Lostinet(Lostinet) (  ) 信誉:100  2002-4-2 17:57:36  得分:0  
      会不会从二进制变为UNICODE字符串啊?确实如此。如果我不传字符串而传二进制数据则会出问题。问题可能出在HIDDEN元素。如果用VBS编码,该怎么编?又该怎么传呢?谢谢!
     
      

  7.   

    你在组件中直接输出BSTR不好么??
    或者是这种:
    f3a83c......也好啊。
    送到服务器再进行还原。
      

  8.   

    回复人: lostinet(Lostinet) (  ) 信誉:100  2002-04-03 14:01:00  得分:0  没错是个好办法。我试过这个方法,但是我的数据编码被IE(?)修改了。我在component中是直接把二进制数据copy到双字节的BSTR中,然后送给JS,再由FORM交给Server,但是Server得到的东西面目全非。如果按BSTR来传的话,我需要知道怎样来还原我的原始数据。谢谢你的帮助。
      

  9.   

    这是不是涉及到UNICODE编码的东西?FORM的元素确实是用UNICODE传输的吗?看来我得查查资料才行,能给点提示吗?
      

  10.   

    不是COPY啊COPY当然会有问题。
    我的意思是,如果你的二进制本来就是字符串,那么就转换成UNICODE的BSTR
    如果是二进制的数据,那么就转为F386B9AA82这种BSTR。
      

  11.   

    lostinet(Lostinet) (  ) 信誉:100 是后者,二进制的数据。你说的第一种情况我明白了,用MultiByteToWideChar之类的函数对不对;但是第二种情况不太明白你的意思,我的就是这种情况,该怎么转换呢?难道是把二进制->字符串->Unicode?那样数据量会是原来的4倍。能不能再说详细一点?谢谢。刚才给分好像出了点错,待会儿再来。
      

  12.   

    是啊。。就是那样。
    不过不算4倍啦。
    表单发送的时候,又会变成UTF-8的编码的。
    所以传输过程,0-9A-F也是一个字母一个字节而已