程序运行环境:AIX,运行时有指定参数-Dfile.encoding=GBK,接收JMS消息的格式是UTF-8,现在需要将接收到的消息转为GBK字符集,中文能正常显示,但是发现有的中文前面多了一个"?"号。用String utf = new String("中文".getBytes(),"UTF-8");String GBK_format = new String (utf.getBytes("GBK"),"GBK");做了一个模拟,并将字符串写到一个文本中,发现不是乱码就是问号,请问如何解决?重点是程序是在Windows中文环境下编译的,放在AIX上去运行,运行时指定了参数-Dfile.encoding=GBK,中文基本都能正常显示,但是有些中文前面多了一个问号。
我前段时间碰到类似的问题,不过我不是AIX,而是Symbian,当时从服务器下载下来的一直都是乱码或?,后来我发现不能一开始用字符串读取,如果直接用字节数组就不会出现乱码或?了,类似这样
byte[] b = new byte[1024];
int len = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dops = new DataOutputStream(baos);
while ((len = in.read(b)) != -1) {
dops.write(b, 0, len);
}
byte[] bytes = baos.toByteArray();