项目中,要在文件中写中文,在linux、windows等环境上都是好的,但是在aix环境上文件中就写入了乱码,查找资料以后发现是字符集的问题,在写文件的时候,需要做一步转换:
需要先获取操作系统,如果是AIX需要进行转码,如果不是AIX,不需要进行转码
获取操作系统的代码:
// 获取操作系统名称
String operation = System.getProperty("os.name");
// 转成大写
operation = operation.toUpperCase(Locale.ENGLISH);
// 判断是否是AIX的
if (operation.indexOf("AIX") != -1)
{
// 是AIX
}
else
{
// 不是AIX
}
如果是AIX,在写文件前,多加一行代码:
str = new String(str.getBytes("GBK"), "ISO8859_1");
把GBK格式的转换成ISO8859_1
如果是AIX,在读取文件以后,需要把读取出的一行数据,进行转换:
str = new String(str.getBytes("ISO8859_1"), "GBK");
把ISO8859_1格式的转换成GBK
如果不是AIX的,不需要做转换