用byte[]传汉字,在java的客户方用StringBuffer(,“gb2312");就可以了。

解决方案 »

  1.   

    大侠:
       我server端用的是c++,怎么用byte[]传汉字呀
      

  2.   

    我想更C++的Server端没有关系,还是java的unicode转化上出了问题.中文问题以前有很多,转化一下再试试.我从来都是用英文.
      

  3.   

    关注。不知道为什么java 常出中文显示的问题,我用各种JDBC去连Oracle, SqlSer,为了取得正确的汉字,得不停的测试各种方法,也是被搞得很掺。
      

  4.   

    我碰到过这样的问题并解决了:在bean里把汉字写到文件里,读出来结果是乱码换了好多流的组合都不行,用的JDE是1.3结果换了一个运行环境1.3.0_02以后就可以显示汉字了现在1.3.1都出来了,用它估计能解决乱码的问题。我没用过1.3.1,我想应该行的,因为1.3.0_02都行呵呵
      

  5.   

    这个问题和编码格式无关,主要是IDL文件的问题,CORBA处理字符串有:String和wstring两种类型,string类型主要用于处理ASCII类型的字符串,wstring用于处理多字节的字符串,例如:中文。所以,你在定义你的IDL文件时,凡是有用到中文的接口方法的参数,要用wstring来代替string类型即可,祝你好运! 
      

  6.   

    马兄,我的邮件是[email protected],再联系。
      

  7.   

    String_var是个包含char* 的类.代替你做一些经常会忘记的free memory的工作.
    namespace CORBA
    {
            char* *string_alloc(ULong len);
            char* *string_dup(const char*);
            void  string_free(char*);
            ...
    }  
    拷贝String_var可以用 string_dup来产生内存的拷贝.再把指针付给另外一个String_var即可.  
    WString_var一样.     
    另外问一下,中文问题解决了?
      

  8.   

    或者简单点.
    直接a=b;
    这是一种deep copy.
      

  9.   

    白云蓝天兄,我又遇到了麻烦,救我啊。
    用什么办法可以从char * 转换成wchar*。
    我做的一个访问数据库的东东,有方法statement->get_string(char* value);
    可是我希望取出的是wchar *。
    另外有没有办法即使使用string类型也不会出现乱码问题?我好像是用的iso8859-1的方式
    解决的,可现在怎么也实现不了,真要命。
    怎样把分给你呀?
      

  10.   

    Shanghai Peter.Liu先生,你的来信我已收到,今天邮件发不出,在这里回答吧。我做的是一个电信ip网管的项目,其实代码并不复杂,我认为技术问题集中在C++实现的server端,java与idl映射的相当完美,不存在太多问题,c由于指针的原因显得复杂一些。
    遇到的问题有:
    1.struct的映射
    2.sequence的映射,如何返回一个sequence类型的变量,包括interface的sequence.
    3.event的实现。
    4.不知你遇到没遇到这样的问题
      struct MyStruct
    {  string name;
       string spell;
    }
           
      interface a{
         attribute MyStruct property;
        }
    映射后在实现代码中有
          property(MyStruct * _property);
          MyStruct_ptr property();
    为实现这两个方法我在实现类aImpl中定义private MyStruct_ptr temp;
    做为存放信息的指针变量,可是除在property()方法体内之外,temp是一个空指
    针,不知道为什么corba会把这个指针释放,我得不到想要的值。有解决这个问题的同志回答一下。
      

  11.   

    各位:如下问题
    Server端:
    CORBA::Short CPaymentMethod:: getPayment(CORBA::WString_out _PaymentName)
    {
    .........
    _PaymentName   = CORBA::wstring_dup((const unsigned short *)"XX卡支付");
    .........
    }Client端:
    StringHolder PaymentName = new StringHolder();//调用上面Server端的CORBA对象中的方法
    int i = m_MyORB.m_myPaymentMethod.getPayment(PaymentName);System.out.println("Payment=" + PaymentPlugin.value);//无法显示中文????
      

  12.   

    corba中文论坛:
    http://www.deping.net/cgi-bin/lbbs/leoboard.cgi
    corba人有家了。