linux写文件最后多了写乱码,unix环境下写文件内容出现乱码,该如何避免

unix环境下写文件内容出现乱码,该如何避免

unix环境下写文件内容出现乱码,该如何避免

日期:2014-05-16  浏览次数:20375 次

unix环境下写文件内容出现乱码,该如何处理?

Windows编码方式:GBK

Hp-unix编码方式:EUC_CN

try   {

String   path   =   System.getProperties().getProperty( "LOGPATH ")   +   "cpmis_demo.log ";

String   sMsg   =   "你好吗?dsfadsafd我很好,你了?邱喆邱喆邱喆邱喆邱喆邱喆邱喆 ";

out.println(path);

FileWriter   logfile   =   new   FileWriter(path,   true);

String   sysEncode   =   logfile.getEncoding();

out.println( "
");

out.println(logfile.getEncoding());

logfile.write( "\r\n   1=> ");

logfile.write(new   String(sMsg.getBytes(sysEncode), "ISO8859_1 "));

logfile.write( "\r\n   2=> ");

logfile.write(new   String(sMsg.getBytes(sysEncode), "utf-8 "));

logfile.write( "\r\n   3=> ");

logfile.write(new   String(sMsg.getBytes(sysEncode), "GB2312 "));

logfile.write( "\r\n   4=> ");

logfile.write(new   String(sMsg.getBytes(sysEncode), "GBK "));

logfile.write( "\r\n   5=> ");

logfile.write(new   String(sMsg.getBytes(sysEncode), "EUC_CN "));

logfile.flush();

logfile.close();

}   catch   (Exception   e)   {

strUtils.WriteLog(e.toString());

}   finally   {

}

%>

==================

为什么,往日志文件里面写内容, "喆 "字会乱码?该如何解决?谢谢!!

=================

服务器是hp-unix,weblogic

=================

1=> ????????dsfadsafd???????????????????????????????????

2=> ?????dsfadsafd??????????????????????????????

3=> 你好吗?dsfadsafd我很好,你了?邱?邱?邱?邱?邱?邱?邱?

4=> 你好吗?dsfadsafd我很好,你了?邱?邱?邱?邱?邱?邱?邱?

5=> 你好吗?dsfadsafd我很好,你了?邱?邱?邱?邱?邱?邱?邱?

------解决方案--------------------

发错地方了吧,这是Java问题,虽然说他跑在Unix上,但Java号称跨平台呀。

我也做过一点Java,

sysEncode和你那行字: "你好吗?dsfadsafd我很好,你了?邱喆邱喆邱喆邱喆邱喆邱喆邱喆 "

的输入编码不一致,下面的写文件的时候,就相当于将那行文字的编码,用sysEncode编码转成你在new String(sMsg.getBytes(sysEncode), "utf-8 ")里写的编码。不兼容的字符就是乱码。

sysEncode不能用logfile.getEncoding---这个可能会取到LANG或LC_CTYPE的编码,而是用和输入那行字时所用输入法的编码方式一致的编码。

如果logfile.getEncoding和那行字本来的编码一致,你就不需要转换。

------解决方案--------------------

用VI看看程序

免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值