Tạo tệp mới trong WinSCP với UTF-8 mà không cần mã hóa BOM


2

Tôi đang sử dụng WinSCP để hoạt động thông qua SFTP với một máy chủ từ xa chạy phân phối Linux. Tôi cũng đang sử dụng Notepad ++ (phiên bản mới nhất) làm trình soạn thảo văn bản của mình (khi chỉnh sửa tệp từ xa).

Khi tôi sử dụng WinSCP để tạo một tệp mới trong máy chủ từ xa bằng cách sử dụng:

Right click > New > File...

Notepad ++ mở tệp trống, nhưng mã hóa xuất hiện dưới dạng ANSI thay vì UTF-8 w / o BOM , đây là mặc định của tôi. Tôi thậm chí còn có tùy chọn "Áp dụng cho các tệp ANSI đã mở" được bật trong Notepad ++

Settings / Preferences / New Document / Encoding /
   UTF-8 without BOM / Apply to opened ANSI files

Do đó, tôi phải chọn thủ công Encoding / Convert to UTF-8 without BOMmỗi lần và nếu vì lý do nào đó tôi quên tôi phải thực hiện bước đó, tốt, tệp được lưu dưới dạng ANSI và điều đó có thể gây rắc rối.

Có cách nào để tập tin mới được mã hóa thành UTF-8 mà không cần BOM không?


giải pháp nào cho việc này cho đến nay? Tôi có chung vấn đề đó. Thật khó chịu khi phải thay đổi mã hóa thủ công mỗi lần.
DiegoDĐ

Câu trả lời:


1

Kiểm tra mã nguồn Notepad ++, tôi có thể thấy tùy chọn "Áp dụng cho các tệp ANSI đã mở" bị dán nhãn sai. Nó nên đọc "Áp dụng cho các tệp ASCII đã mở " vì nó chỉ áp dụng cho các tệp 7 bit (ASCII).

Một tệp trống được "phát hiện" là 8 bit (ANSI), vì vậy tùy chọn này không bao giờ áp dụng cho các tệp trống.

UniMode um = UnicodeConvertor.getEncoding();
if (um == uni7Bit)
{
    if (ndds._openAnsiAsUtf8)
    {
        um = uniCookie;
    }
    else
    {
        um = uni8Bit;
    }
}

Các UnicodeConvertor.getEncoding()luôn trả về uni8Bitkhi tập tin trống.

Tôi đề nghị bạn báo cáo đây là một lỗi.


Dường như không có bất kỳ tùy chọn dòng lệnh nào để buộc mã hóa khác nhau:
http://docs.notepad-plus-plus.org/index.php/Command_Line_Switches


0

Điều này dường như được sửa trong Notepad ++ 6.4.5 https://notepad-plus-plus.org/doad/v6.4.5.html

Khắc phục lỗi phát hiện UTF-8 (w / o BOM).

Tuy nhiên, khi một tệp mới được tạo trong WinSCP và nó được mở bằng Notepad ++, mã hóa trong các trình soạn thảo ở góc dưới bên phải đang hiển thị ANSI. Nhưng khi tệp được lưu, đóng và mở lại một lần nữa, mã hóa là UTF8.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.