Activex在启动时,通过网页中的param传入文字,如果在英文系统中,这些文字全部成为???了,为什么我的Activex很简单,就是在启动的时候通过::PX_String(pPX,_T("text"),m_text);方法给m_text赋值,然后通过AfxMessageBox将文字显示出来在中文系统中一切很正常,到了英文系统下就成了问号了。我得英文系统中装了汉化包,所有的程序都可以显示中文,只是在这里不可以,为什么?

解决方案 »

  1.   

    现在明白了
    原来英文系统下文字编码采用UNICODE,所以会出问题。但我仍然不知道怎么解决。我可以采用编码转化把UNICODE编码转化为gb2312,但怎么才能知道对方用的就以非简体系统呢?或者说怎么知道传入的字符就不是gb2312的呢困惑我好久了,帮忙呀
      

  2.   

    呀呀呀,好像还不是给点代码:
    void CsimpleCtrl::DoPropExchange(CPropExchange* pPX)
    {
    ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
    COleControl::DoPropExchange(pPX);
    ::PX_String(pPX,_T("text"),m_text);
    }
    这个是我得到参数text的地方。如果直接通过MessageBox将这个m_text打出来,结果会是一堆?号,如果我直接m_text=_T("哈哈哈"),在通过messageBox显示出来就没有问题。
    我用IsTextUnicode发现这个字符串不是UNICODE。
    可怎么才能让它不是乱码呢?高手帮帮忙吧