<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 188,comments - 176,trackbacks - 0

          在博文之前,先介紹一下文本模式和二進(jìn)制模式的差別,兩者主要是在回車換行的處理上,不同系統(tǒng)對(duì)回車換行的處理不一致。

          CR:  Carriage Return,   0X0D,   “\r”
          LF:  Line Feed,         0X0A,   “\n”

          Dos和Windows采用回車+換行(CR+LG)表示下一行
          UNIX采用換行符 (LF)表示下一行
          MAC機(jī)采用回車符(CR)表示下一行

          最近一直在開(kāi)發(fā)湖北現(xiàn)場(chǎng)的割接工具,工具的執(zhí)行流程貫穿到系統(tǒng)多個(gè)模塊。和同事一起配合,同事開(kāi)發(fā)的工具從現(xiàn)場(chǎng)的系統(tǒng)A中將數(shù)據(jù)導(dǎo)出到文本,然后由我的工具來(lái)將這些文本導(dǎo)入到現(xiàn)場(chǎng)的項(xiàng)目B中,也就是我們常說(shuō)的數(shù)據(jù)割接,原因是項(xiàng)目升級(jí),運(yùn)營(yíng)商已經(jīng)商用的數(shù)據(jù)需要在新平臺(tái)上繼續(xù)使用。

          開(kāi)發(fā)環(huán)境:SUSE Linux + Oracle

          測(cè)試環(huán)境:HP + Oracle

          FTP上傳工具:FlashFXP

          注:在windows下編寫(xiě)完程序后FTP至SUSE或HP下進(jìn)行調(diào)試和測(cè)試

          開(kāi)發(fā)自測(cè)完,代碼提交CC,書(shū)寫(xiě)操作手冊(cè),自測(cè)完畢工具打包,程序的整個(gè)流程都按照需求描述成功走完,并能順利將各個(gè)流程連貫起來(lái)。以為這次應(yīng)該是沒(méi)問(wèn)題的,拿到現(xiàn)場(chǎng)應(yīng)該是能順利進(jìn)行使用的,但沒(méi)預(yù)料,還沒(méi)發(fā)到現(xiàn)場(chǎng),在測(cè)試部測(cè)試這一環(huán)節(jié)就出現(xiàn)了問(wèn)題,本定于昨天早上8:30發(fā)到現(xiàn)場(chǎng),但由于測(cè)試沒(méi)有通過(guò),頂著現(xiàn)場(chǎng)和領(lǐng)導(dǎo)們的壓力,拉上我?guī)熜郑蛱煲徽炫阄以跍y(cè)試部整代碼,反復(fù)調(diào)試和測(cè)試。終于在下午5點(diǎn)鐘找到問(wèn)題的根源:

           windows下的文本文件是的換行處理是采用回車+換行(0D0A)的方式,linux下的文本文件的換行處理是采用換行(0A)的方式。在windows本地通過(guò)二進(jìn)制方式從windows xp上傳FTP到suse liunx后,windows下的回車換行符"\r\n"到了suse linux下并沒(méi)有變?yōu)閘inux下的換行符"\n",也就是文本文件以二進(jìn)制FTP到liunx下時(shí),在文本記錄中每行末尾追加了"\r\n",而通常如果以ASCII文本方式上傳到suse linux后,文本每行的"\r"在suse會(huì)過(guò)濾掉的。于是部署在suse linux上的shell腳本在調(diào)用sqlldr函數(shù)將上傳后的文本導(dǎo)入到系統(tǒng)B中,sqlldr總是提示字段值過(guò)長(zhǎng)的異常信息,顯然文本數(shù)據(jù)沒(méi)有導(dǎo)入成功,因?yàn)閛racle表中的字段定義為char(14),而上傳后的文本文件的最后一個(gè)字段本來(lái)是14位,但加了"\r\n"后就變?yōu)?6位。于是針對(duì)這個(gè)文本字段sqlldr到oracle時(shí)就會(huì)提示字段過(guò)長(zhǎng)而插入不成功了。問(wèn)題定位后,轉(zhuǎn)而將文件以ASCII方式FTP至服務(wù)器上后,程序運(yùn)行完全正常,問(wèn)題解決。
          同時(shí)測(cè)試發(fā)現(xiàn),通過(guò)jsp流從windows上傳文本文件到suse linux上時(shí),文本文件中的"\r\n"到suse上后還是存在"\r\n",也沒(méi)有轉(zhuǎn)換為"\n"。


      

     

     

     

     

    posted on 2008-03-27 19:50 cheng 閱讀(2771) 評(píng)論(4)  編輯  收藏 所屬分類: Unix/Linux

    FeedBack:
    # re: 回車符和二進(jìn)制引發(fā)的問(wèn)題
    2008-03-28 07:16 | ZelluX
    常識(shí)。。。否則還要line.separator這東東干嘛。。。  回復(fù)  更多評(píng)論
      
    # re: 回車符和二進(jìn)制引發(fā)的問(wèn)題
    2008-03-28 15:11 | cheng
    是啊,嗯...呵呵
    理論知識(shí)還需鞏固和加強(qiáng).  回復(fù)  更多評(píng)論
      
    # re: 回車符和二進(jìn)制引發(fā)的問(wèn)題
    2008-03-28 16:09 | 草包書(shū)生
    # re: 回車符和二進(jìn)制引發(fā)的問(wèn)題
    2008-07-17 11:10 | xx
    有道理 我剛剛也遇到了這樣的問(wèn)題 發(fā)現(xiàn)在linux下使用dos2unix也可以解決  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 国产卡一卡二卡三免费入口| 美女免费视频一区二区三区| 亚洲成人黄色在线观看| 亚洲综合久久综合激情久久| 人人狠狠综合久久亚洲88| 亚洲色欲色欲www在线丝 | 成年网在线观看免费观看网址 | 亚洲人成在线播放网站岛国| 色婷婷六月亚洲婷婷丁香| 亚洲一区二区三区日本久久九| 久久亚洲精品中文字幕| 亚洲精品美女在线观看| 亚洲免费福利在线视频| 亚洲一卡2卡3卡4卡5卡6卡| 亚洲丰满熟女一区二区哦| 国产亚洲视频在线播放大全| 人碰人碰人成人免费视频| 久久成人18免费网站 | 亚洲成A人片在线播放器| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲第一成年网站视频| 国产精品亚洲天堂| jizz免费一区二区三区| 日本高清高色视频免费| 亚欧色视频在线观看免费| 毛片免费观看网站| 免费看小12萝裸体视频国产| 毛茸茸bbw亚洲人| 五月天网站亚洲小说| 33333在线亚洲| 国产精品亚洲天堂| 成人性生交大片免费看中文| 69影院毛片免费观看视频在线| 日韩精品福利片午夜免费观着| 免费人成在线观看网站视频| 国产亚洲大尺度无码无码专线| 亚洲精品自产拍在线观看动漫| 亚洲不卡影院午夜在线观看| 一个人看的免费视频www在线高清动漫| 色www永久免费| 国产一卡2卡3卡4卡无卡免费视频 国产一卡二卡3卡四卡免费 |