Văn bản

CRLF ↔ LF Converter

Chuyển đổi ký tự xuống dòng giữa Windows (CRLF), Unix/macOS (LF) và Mac cổ điển (CR), kèm phát hiện kiểu xuống dòng hỗn hợp.

Chuyển sang

Trình duyệt tự động chuẩn hóa văn bản dán vào ô này thành LF, nên không thể phát hiện CRLF/CR gốc ở đây — để phân tích hoặc chuyển đổi tệp có CRLF/CR thực, hãy dùng chức năng tải tệp lên ở trên.


                    

Windows, Unix/macOS, and the old classic Mac historically use different characters to mark the end of a line — CRLF, LF, and CR respectively. Mixing these styles in one file often causes odd artifacts in diffs or editors. This tool converts line endings to one style and detects mixed ones.

How to use it

Common uses

Things to keep in mind

Git can automate this conversion itself through core.autocrlf or .gitattributes — often more convenient than converting files in a repository by hand.

Mixed line endings in one file aren't always visible at a glance, but they can break parsers or scripts that expect one specific style.

Bài viết về công cụ này: CRLF so với LF: vì sao ký tự cuối dòng vẫn còn quan trọng

Câu hỏi thường gặp

Tại sao ký tự xuống dòng lại khác nhau giữa các hệ điều hành?

Windows dùng CRLF (\r\n), Unix và macOS chỉ dùng LF (\n), còn Mac cổ điển chỉ dùng CR (\r) — những quy ước lịch sử khác nhau này gây ra sự không nhất quán khi tệp di chuyển giữa các hệ thống.

Tại sao tôi cần tải tệp lên thay vì dán văn bản?

Trình duyệt tự động chuẩn hóa mọi văn bản dán vào ô nhập thành LF, vì vậy các ký tự CRLF hoặc CR gốc thực tế sẽ không thể phát hiện được sau khi dán — chỉ có tải tệp trực tiếp mới giữ nguyên ký tự xuống dòng thật để phân tích hoặc chuyển đổi.

Vấn đề này thực sự quan trọng khi nào?

Nó quan trọng nhất với git (diff bị nhiễu do xuống dòng gây ra), các script shell bị lỗi do còn sót CRLF, và các tệp được trao đổi giữa hệ thống Windows và Unix/macOS; tệp tải lên chỉ được xử lý cục bộ trong trình duyệt, không bao giờ gửi lên máy chủ.

Phải làm gì nếu một tệp có cả CRLF lẫn LF trộn lẫn?

Một tệp được chỉnh sửa qua nhiều trình soạn thảo hoặc trên các hệ điều hành khác nhau có thể chứa cả hai kiểu cùng lúc. Cần áp dụng chuyển đổi cho toàn bộ tệp, chứ không chỉ những dòng "đáng ngờ" nhìn thấy được — nếu không một phần kết thúc dòng có vấn đề sẽ vẫn không được phát hiện.

Có thể tự động hóa việc chuyển đổi qua git không?

Có, cài đặt core.autocrlf trong git tự động chuyển đổi ký tự xuống dòng khi checkout và commit, còn .gitattributes cho phép chỉ định rõ kiểu xuống dòng cho từng loại tệp cụ thể trong repository.

Bài viết: Văn bản

Case Converter: vì sao có các kiểu đặt tên khác nhau

Vì sao trong một dự án, biến được viết camelCase nhưng tệp lại kebab-case, và những quy tắc này đến từ đâu.

Text Diff: thuật toán tìm sự khác biệt giữa hai văn bản như thế nào

Thuật toán diff tìm tập hợp thay đổi tối thiểu giữa hai phiên bản văn bản như thế nào.

Biểu thức chính quy: cú pháp cơ bản và các mẫu thường gặp

Cách đọc một biểu thức chính quy, và khớp tham lam khác khớp lười ra sao.

Sắp xếp và loại bỏ dòng trùng lặp: dùng để làm gì

Vì sao sắp xếp theo số đặt "10" trước "9" là một lỗi, và cách tránh điều đó.

String Escape: vì sao cùng một văn bản cần escape khác nhau

Vì sao cùng một dấu ngoặc kép lại được escape khác nhau trong chuỗi JS, JSON và lệnh shell.

Đếm ký tự và từ: vì sao không phải lúc nào cũng đơn giản

Vì sao một emoji hoặc chữ có dấu có thể được tính là nhiều ký tự cùng lúc.

Lorem Ipsum: văn bản giữ chỗ đến từ đâu và dùng để làm gì

Vì sao các nhà thiết kế cố tình dùng văn bản "vô nghĩa" thay vì nội dung thật trong bản phác thảo.

Slugify: cách biến bất kỳ văn bản nào thành URL

Một tiêu đề như "Xin chào, Thế giới! Bạn khỏe không?" biến thành chuỗi tương thích URL như xin-chao-the-gioi-ban-khoe-khong ra sao.

Markdown: vì sao cú pháp văn bản đơn giản đánh bại trình soạn thảo phức tạp

Vì sao lập trình viên chọn viết tài liệu bằng Markdown thay vì trình soạn thảo văn bản định dạng phong phú.

Khoảng trắng và ký tự vô hình: nguyên nhân ẩn giấu của các lỗi kỳ lạ

Vì sao hai chuỗi trông giống hệt nhau có thể không khớp do một ký tự vô hình.

Text Reverse: vì sao "đảo ngược văn bản" khó hơn tưởng tượng

Vì sao đảo ngược chuỗi ngây thơ có thể biến một emoji thành các byte không sử dụng được.

Phân tích tần suất văn bản: vì sao cần đếm số lần từ lặp lại

Tần suất chữ cái trong văn bản mã hóa giúp phá vỡ các mật mã thay thế đơn giản nhất như thế nào.