在使用CORBA时,客户端采用JAVA语言,服务端采用C++语言,在传递中文字符串时,可能存在乱码问题。
这时需要进行编码的转化。C++的CORBA服务端一般采用ISO-8859-1编码,而JAVA客户端一般采用UTF-8或者是GBK编码。这时就需要进行编码的转化。
一,从客户端传入服务端进行如下的转化:
String str = new String(clientString.getBytes("GBK"),"ISO-8859-1"));
String str = new String(clientString.getBytes("UTF-8"),"ISO-8859-1"))
二,从服务端传入客户端进行如下的转化:
String str = new String(serverString.getBytes("ISO-8859-1"),"GBK"));
String str = new String(SerString.getBytes("ISO-8859-1"),"UTF-8"));
其中clientString和serverString是外部(客户端或者服务端)传入的字符串,str为转化后的字符串。
一般中文的时候会出现乱码,需要转化,其他字符不需转化。