1. 程式人生 > >記事本中的回車換行問題

記事本中的回車換行問題

  我們知道回車換行在不同的系統中是不一樣的,例如在dos/windows下是0d 0a,在Unix中是0a,在Mac中是0d。由於各種原因,我們可能會遇到一些“特殊”的回車換行,如0d 0d 0a。如果記事本打開了包含這樣的回車換行的檔案,那麼在使用者儲存時,記事本可能會把0d 0d 0a刪除掉。

  經過本人小範圍的測試(限於XP和2003),這個BUG出現的概率是50%左右,即每兩臺機器就有一臺存在問題。這個BUG對大多數人來說並不會產生問題,畢竟遇到這種“特殊”回車換行的機會不多,而且即使有也不見得會有什麼影響。但對我來說卻帶來了不小的麻煩。

  不知道什麼原因,在本人一些年代較久遠的SQL指令碼中存在著少數這樣的“特殊”回車換行。我習慣使用記事本來編輯SQL指令碼,在記事本的“特殊照顧”下,我的程式碼發生了“意想不到”的變化。例如,這段指令碼

-- 註釋
IF ( @r>0 )
    
SET@t=NULL

在記事本“特殊照顧”後就變成了

-- 註釋IF ( @r > 0 )
SET@t=NULL

  在“元凶”潛水的時間裡,SQL Server就成了我的冤大頭,還好沉冤終得雪。由於歷史遺留問題,把所有SQL指令碼中的0d 0d 0a換成0d 0a是一個相當麻煩的事,目前我的選擇只能是放棄使用記事本來編輯SQL指令碼了。

  不過相信這種問題較為罕見(沒辦法,本人RP太好了),編寫本文純屬自我陶醉一番。