我創建了一個 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