GNU/Linux >> Belajar Linux >  >> Linux

Apa perbedaan antara file .txt Linux dan Windows (pengodean Unicode)

"Unicode" di Windows adalah UTF-16LE, dan setiap karakter berukuran 2 atau 4 byte. Linux menggunakan UTF-8, dan setiap karakter berukuran antara 1 dan 4 byte.

"Minimum Mutlak Setiap Pengembang Perangkat Lunak, Pasti Harus Tahu Tentang Unicode dan Kumpulan Karakter (Tanpa Alasan!)"


Garis putus

Windows menggunakan CRLF (\r\n , 0D 0A ) akhir baris sementara Unix hanya menggunakan LF (\n , 0A ).

Enkode Karakter

Sebagian besar sistem modern (yaitu, sejak 2004 atau lebih) mirip Unix menjadikan UTF-8 sebagai penyandian karakter default.

Windows, bagaimanapun, tidak memiliki dukungan asli untuk UTF-8. Ini bekerja secara internal di UTF-16, dan mengasumsikan bahwa char - string berbasis ada di halaman kode lawas. Untungnya, Notepad mampu membaca file UTF-8; sayangnya, enkode "ANSI" masih defaultnya.

Karakter Khusus Bermasalah

Pengganti U+001A

Windows (jarang) menggunakan Ctrl +Z sebagai karakter akhir file. Misalnya, jika Anda type file pada prompt perintah, itu akan dipotong pada 1A pertama byte.

Di Unix, Ctrl +Z tidak ada yang istimewa.

U+FEFF ZERO WITH NO-BREAK SPACE (Byte-Order Mark)

Di Windows, file UTF-8 sering dimulai dengan "byte order mark" EF BB BF untuk membedakannya dari file ANSI.

Di Linux, BOM tidak disarankan karena merusak hal-hal seperti baris shebang di skrip shell. Selain itu, tidak ada gunanya memiliki tanda tangan UTF-8 jika UTF-8 adalah penyandian default.


Satu perbedaan yang saya dengar adalah penggunaan \r\n (Windows) vs. \n untuk jeda baris (Linux).

Ya. Sebagian besar editor teks UNIX akan menangani ini secara otomatis, editor pemrogram Windows dapat menangani ini, editor teks umum (Notepad dasar) tidak akan melakukannya.

Windows tampaknya juga membutuhkan EOF (Ctrl-Z) sebagai END OF FILE dalam beberapa konteks, sedangkan Anda mungkin tidak akan pernah melihatnya di UNIX.

Ingat bahwa MacOS X sekarang adalah UNIX di bawahnya, sehingga menggunakan akhiran garis UNIX. Meskipun sebelum OS X (MacOS 9 dan di bawahnya) memiliki akhirannya sendiri (\r)

EDIT:dalam format lain CR dan LF:

  • \n adalah ASCII 0x0A, Umpan Baris (LF)
  • \r adalah ASCII 0x0D, Carriage return (CR)

Linux
  1. MySQL vs. MariaDB:Apa Perbedaan Utama Antara Mereka?

  2. Linux – Bagikan File Antara Linux Host Dan Windows Guest?

  3. Linux – Apa Perbedaan Utama Antara Sistem Operasi Berbasis Bsd dan Linux?

  1. Apa perbedaan antara wadah Linux dan gambar?

  2. Apa Perbedaan Antara Kernel Terkirim Ubuntu Dan Kernel Hulu?

  3. Apa perbedaan fungsional antara .profile .bash_profile dan .bashrc

  1. Apa Perbedaan Utama Antara Bsd Dan Gnu/linux Userland?

  2. Apa panggilan OS / sistem asli Windows dan Linux yang dibuat dari malloc ()?

  3. Apa perbedaan antara lsof dan netstat di linux?