Windows和Unix下的换行符

SeeBeyond(Sun公司的系统集成产品)服务器是在Sun Solaris机器上的。今天我们这个新项目组的成员们基于Windows利用EAI技术(Enterprise Application Integration)开发简单的系统集成应用,需要将类似于JavaBean的持久化对象(存储在纯文本文件中,利用分隔符进行字段和对象记录的分割)上传至服务器指定目录中。

业务逻辑的实现、文件读入和文件写出都没有问题,可就是没法读出对象的字段值来,甚是郁闷。telnet登录服务器查看日志虽然看到了包含 ^M 的异常信息字样,可万没有想到是上传文本文件的时候换行符已经进行了转换。

再请教Feroz,讲解到,由于FTP采用Binary形式上传时,Windows下的\r\n是不会被转换的,用vi查看时可以看到在每行结尾都有^M字符。而采用ASCII码上传时,则会将Windows下的\r\n转换为\n。

以下方法清除换行符转换带来的unix系统下^M:

(1)用vi编辑该文件,输入vi命令:
∶%s/^V^M//g
(2)如果在unix&nbspshell下,则输入命令:
%&nbspsed 's/^V^M//g'&nbspfoo >&nbspfoo.new
注意: ^V 是&nbspcontrol +&nbspV , ^M 是&nbspcontrol +&nbspM 或&nbspEnter

参考文章:
http://blog.csdn.net/croco1981/archive/2009/02/02/3857837.aspx




你可能感兴趣的:(windows,应用服务器,unix,Solaris,sun)