Windows Notepad 和 Notepad++ 在同一檔案中以不同方式顯示換行符

Windows Notepad 和 Notepad++ 在同一檔案中以不同方式顯示換行符

我創建了一個 Perl 腳本,它獲取一些數據並將其逐行插入到文字檔案中。當我使用 Notepad++ 開啟該檔案時,每兩行文字之間似乎都有一個空行分隔,例如:

AAVX    Etracs Daily Short 1 Month S&P

ABCS    Guggenheim Abc High Dividend Et

ABI     Safety First Trust

但是,如果我使用標準 Windows 記事本開啟相同文件,則該文件將不帶空格,如下所示:

AAVX    Etracs Daily Short 1 Month S&P
ABCS    Guggenheim Abc High Dividend Et
ABI     Safety First Trust

問題是:我該信任哪一款記事本?

答案1

停產控製字元不正確。 Windows 用carriage return+表示換行符號line feed

在 Notepad++ 中,您可以透過選擇以下內容來檢查這些字元:

看法>顯示符號>[x] Show End of Line

記事本++

您需要修改腳本,使資料格式如下:

回車換行

答案2

是否設定

Edit > EOL Conversion

有效果嗎?嘗試將其切換到 UNIX。

答案3

除了常規 Windows EOL 之外,您還有一個非 Windows EOL 字元CrLf。 Notepad++ 可以理解所有各種 EOL 字元並顯示它們。 Windows 記事本沒有那麼智能,它會跳過非 Windows EOL 字元。

我不了解 Perl,但當這種情況發生在我身上時,幾乎總是因為我發送的字串末尾有非 Windows EOL 字元。測試字串中最後一個字元的 Asc 字元代碼值,如果它是carriage return.

VBA 中的範例

If Asc(Right(sName, 1)) = 13 Then
   sName = Left(sName, Len(sName) - 1)
End If

相關內容