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

参考文章:
[url]http://blog.csdn.net/croco1981/archive/2009/02/02/3857837.aspx[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值