22 poin oleh GN⁺ 2023-10-03 | 3 komentar | Bagikan ke WhatsApp
  • 20 tahun lalu, Joel menekankan bahwa "Tidak ada yang namanya Plain Text", dan bahwa encoding wajib dipahami
  • Unicode adalah standar yang menyatukan semua bahasa manusia agar dapat digunakan di komputer
  • Sistem code point yang menetapkan nomor unik untuk setiap karakter yang berbeda
  • Code point terbesar adalah 0x10FFFF, menyediakan ruang sekitar 1,1 juta code point
  • UTF-8 adalah encoding yang paling umum, digunakan dengan probabilitas 98%
  • UTF-8 adalah encoding dengan panjang variabel, dan code point dapat dikodekan sebagai urutan 1–4 byte
  • UTF-8 kompatibel pada level byte dengan ASCII, dan efisien dalam penggunaan ruang untuk Latin dasar
  • UTF-8 memiliki kemampuan deteksi dan pemulihan kesalahan bawaan, sehingga dapat mengidentifikasi urutan byte UTF-8 yang lengkap dan valid
  • Extended grapheme cluster atau grapheme adalah unit yang harus diiterasi, bukan code point
  • Unicode diperbarui setiap tahun, dan aturan yang mendefinisikan grapheme cluster berubah setiap tahun
  • Unicode dapat dirender secara berbeda tergantung locale
  • Surrogate pair dalam Unicode adalah dua unit UTF-16 yang digunakan untuk mengodekan satu code point Unicode
  • UTF-16 masih digunakan sebagai representasi dalam memori di beberapa sistem
  • String Unicode harus dinormalisasi sebelum dibandingkan
  • Artikel ini menekankan pentingnya menggunakan pustaka Unicode bahkan untuk operasi dasar seperti strlen, indexOf, dan substring

3 komentar

 
kimws 2023-10-04

Untuk .length dari "‍♂️", di Python 3.11 tampaknya mengembalikan 1.

 
kimws 2023-10-04

Emoji di komentar tampil rusak.

 
GN⁺ 2023-10-03
Komentar Hacker News
  • Artikel ini membahas kompleksitas Unicode dan cara penggunaannya dalam pengembangan perangkat lunak.
  • Seorang komentator tidak setuju dengan klaim artikel bahwa "extended grapheme cluster" adalah cara terbaik untuk memikirkan karakter dalam Unicode, dan berpendapat bahwa definisi "karakter" bisa berbeda tergantung pada tujuan penggunaannya.
  • Komentator tersebut mengusulkan agar iterasi string didasarkan pada code point, yang merupakan tingkat dasar tempat Unicode bekerja.
  • Komentator lain memuji artikel tersebut dan menjawab pertanyaan penulis tentang alasan ligatur "fi" memiliki code point sendiri, dengan menjelaskan bahwa hal itu disebabkan oleh prinsip kompatibilitas pemulihan bentuk asli dalam Unicode.
  • Seorang komentator mengeluhkan munculnya beberapa pointer mouse di layar saat membaca halaman tersebut.
  • Komentator lain membahas tantangan dalam mengatur locale komputer ketika pengguna dapat membaca dan menulis dalam beberapa bahasa, serta mengkritik Linux karena kurangnya opsi kustomisasi dibandingkan Windows.
  • Seorang komentator membagikan pengalamannya mengalami masalah saat menyanitasi input pengguna untuk sistem pihak ketiga karena cara karakter beraksen diproses.
  • Komentator lain membantah klaim artikel bahwa code point bukan unit terbaik untuk digunakan, dan berpendapat bahwa ada banyak situasi di mana bekerja pada level code point memang tepat.
  • Seorang komentator mengkritik contoh artikel tentang bagaimana "é" dikodekan dalam Unicode, dengan alasan bahwa contoh itu menyesatkan dan tidak mewakili cara karakter biasanya dikodekan.
  • Komentator lain membahas masalah logogram Tionghoa, Jepang, dan Korea yang diberi code point yang sama, yang menyebabkan render nama file berbahasa Tionghoa di Windows menjadi buruk jika locale sistem bukan bahasa Tionghoa.
  • Seorang komentator lain merasa bingung dan terganggu oleh efek kursor mouse di halaman tersebut.