Unicode yang menggemaskan ini



Berikut adalah daftar terbaru dari "barang" Unicode yang paling indah, serta paket dan sumber daya

Unicode luar biasa! Sebelum kemunculannya, komunikasi internasional melelahkan: masing-masing mendefinisikan karakternya sendiri yang diperluas di bagian atas ASCII (yang disebut halaman kode). Ini menciptakan konflik. Bayangkan saja bahwa Jerman harus bernegosiasi dengan Korea, di mana halaman kode-nya. Untungnya, Unicode muncul dan memperkenalkan standar umum. Unicode 8.0 mencakup lebih dari 120.000 karakter dari lebih dari 129 skrip. Baik modern dan kuno, dan masih belum didekripsi. Unicode mendukung teks dari kiri ke kanan dan dari kanan ke kiri, overlay karakter dan termasuk berbagai simbol budaya, politik, agama dan emoji. Unicode luar biasa manusia, dan kemampuannya sangat diremehkan.

Isi



Pengantar singkat


Karakter apa yang termasuk dalam Unicode Standard?


Standar Unicode mendefinisikan kode untuk karakter dalam bahasa modern utama. Ini adalah skrip alfabet Eropa, skrip Timur Tengah dari kanan ke kiri dan banyak skrip Asia.

Standar ini juga berisi tanda baca, diakritik, simbol matematika, simbol teknis, panah, dingbats, emoji, dll. Ini menyediakan kode untuk diakritik yang mengubah tanda karakter, seperti tildes (~). Mereka digunakan dalam kombinasi dengan yang dasar untuk mewakili karakter beraksen (misalnya, ñ). Secara umum, Unicode versi 9.0 menyediakan kode untuk 128.172 karakter dari huruf dunia, kumpulan ideogram, dan koleksi karakter.

Karakter yang paling umum ditempatkan di titik kode 64K pertama, area ruang kode yang disebut pesawat multibahasa utama, atau singkatnya BMP. Ada enam belas pesawat tambahan lain yang tersedia untuk penyandian karakter lain, dengan lebih dari 850.000 titik kode yang tidak digunakan. Mereka mungkin berguna untuk menambahkan karakter baru ke versi standar masa depan.

Standar Unicode juga menyimpan poin kode untuk penggunaan pribadi. Vendor atau pengguna akhir dapat menunjuk mereka di sistem mereka sendiri untuk karakter mereka atau menggunakannya dengan font khusus. BMP memiliki 6400 titik kode untuk penggunaan pribadi dan 131 poin tambahan 06 06 lainnya untuk penggunaan pribadi, jika 6400 tidak cukup untuk aplikasi tertentu.

Penyandian karakter Unicode


Standar pengkodean karakter tidak hanya menentukan identitas setiap karakter dan nilai numerik atau titik kode, tetapi juga bagaimana nilai ini direpresentasikan dalam bit.

Standar Unicode mendefinisikan tiga bentuk pengkodean yang memungkinkan transmisi data yang sama: byte, kata, dan kata ganda (mis., 8, 16, atau 32 bit per unit kode). Ketiga bentuk menyandikan kumpulan karakter umum yang sama dan dapat secara efektif dikonversi satu sama lain tanpa kehilangan data. Konsorsium Unicode sepenuhnya mendukung penggunaan salah satu bentuk pengodean ini sebagai cara yang disepakati untuk menerapkan Standar Unicode.

UTF-8 populer untuk HTML dan protokol serupa. UTF-8 adalah cara mengubah semua karakter Unicode ke variabel byte-length encoding. Keuntungannya adalah bahwa karakter Unicode yang sesuai dengan set ASCII yang dikenal memiliki nilai byte yang sama dengan ASCII, dan karakter Unicode yang dikonversi ke UTF-8 dapat digunakan dengan banyak perangkat lunak yang ada tanpa modifikasi perangkat lunak utama.

UTF-16 populer di banyak lingkungan di mana diperlukan untuk menyeimbangkan akses efisien ke karakter dengan penyimpanan ekonomis. Ini cukup kompak, dan semua karakter yang sering digunakan ditempatkan dalam satu blok kode 16-bit, sementara semua karakter lain tersedia melalui pasangan blok kode 16-bit.

UTF-32 berguna di mana jumlah memori tidak menjadi masalah, tetapi membutuhkan akses ke karakter dalam kode lebar tetap tunggal. Di sini, setiap karakter Unicode dikodekan dalam blok kode 32-bit tunggal.

Ketiga bentuk pengkodean tidak memerlukan lebih dari 4 byte (atau 32 bit) untuk setiap karakter.

Bicara tentang angka


Set karakter Unicode dibagi menjadi 17 segmen utama (pesawat), yang selanjutnya dibagi menjadi beberapa blok. Di setiap pesawat ada tempat untuk 65.536 (2 16 ) poin kode, yang menciptakan total 1.114.112 poin kode. Ada dua "pesawat penggunaan pribadi" (No. 16 dan No. 17) yang dialokasikan untuk digunakan atas kebijakan perusahaan / pengguna. Mereka memiliki 131.072 poin kode.

Tidak.JudulKisaran
1.Pesawat multibahasa utama(dari U + 0000 ke U + FFFF)
2.Pesawat multibahasa tambahan(dari U + 10000 ke U + 1FFFF)
3.Pesawat ideografis tambahan(dari U + 20.000 hingga U + 2FFFF)
4.Bidang ideografi tersier(dari U + 30000 hingga U + 3FFFF)
5.Pesawat 5 (tidak digunakan)(dari U + 40.000 hingga U + 4FFFF)
6.Pesawat 6 (tidak digunakan)(dari U + 50.000 hingga U + 5FFFF)
7.Pesawat 7 (tidak digunakan)(dari U + 60.000 ke U + 6FFFF)
8.Pesawat 8 (tidak digunakan)(dari U + 70.000 ke U + 7FFFF)
9.Pesawat 9 (tidak digunakan)(dari U + 80.000 hingga U + 8FFFF)
10.Pesawat 10 (tidak digunakan)(dari U + 90.000 ke U + 9FFFF)
11.Pesawat 11 (tidak digunakan)(dari U + A0000 ke U + AFFFF)
12.Pesawat 12 (tidak digunakan)(dari U + B0000 ke U + BFFFF)
13.Pesawat 13 (tidak digunakan)(dari U + C0000 ke U + CFFFF)
14.Pesawat 14 (tidak digunakan)(dari U + D0000 ke U + DFFFF)
15.Pesawat tambahan khusus(dari U + E0000 ke U + EFFFF)
16.Area tambahan untuk penggunaan pribadi - A(dari U + F0000 ke U + FFFFF)
17.Area tambahan untuk penggunaan pribadi - B(dari U + 100000 ke U + 10FFFF)

Pesawat pertama disebut pesawat multibahasa utama atau BMP. Ini berisi poin kode dari U + 0000 ke U + FFFF, yaitu karakter yang paling umum digunakan. Enam belas pesawat yang tersisa (U + 010000 → U + 10FFFF) disebut tambahan atau astral.

Pasangan pengganti UTF-16


Simbol di luar bidang utama, seperti tetragrammaton yang berarti pusat (U + 1D306), dapat dikodekan dalam UTF-16 dengan hanya dua unit kode 16-bit: 0xD834 0xDF06. Ini disebut pasangan pengganti. Harap dicatat bahwa pasangan pengganti hanya mewakili satu karakter.

Unit kode pertama dari pasangan pengganti selalu dalam kisaran dari 0xD800 ke 0xDBFF dan disebut bagian atas dari pasangan tersebut.

Unit kode kedua dari pasangan pengganti selalu dalam kisaran dari 0xDC00 hingga 0xDFFF dan disebut bagian bawah pasangan.

Matthias Binens

Pasangan pengganti: Representasi satu simbol abstrak, yang terdiri dari urutan dua unit kode 16-bit, di mana nilai pertama pasangan adalah unit kode pengganti atas dan yang kedua adalah unit kode pengganti yang lebih rendah. Pasangan pengganti hanya digunakan dalam UTF-16.

Unicode 8.0 Bab 3.8 - Pengganti

Perhitungan pasangan pengganti


Karakter Unicode "Tumpukan kotoran" (U + 1F4A9) di UTF-16 harus dikodekan sebagai pasangan pengganti, yaitu, dua pengganti. Untuk mengonversi titik kode apa pun menjadi pasangan pengganti, gunakan algoritma ini (dalam JavaScript). Perlu diingat bahwa kami menggunakan notasi heksadesimal.

var High_Surrogate = function(Code_Point){ return Math.floor((Code_Point - 0x10000) / 0x400) + 0xD800 }; var Low_Surrogate = function(Code_Point){ return (Code_Point - 0x10000) % 0x400 + 0xDC00 }; // Reverses The Conversion var Code_Point = function(High_Surrogate, Low_Surrogate){ return (High_Surrogate - 0xD800) * 0x400 + Low_Surrogate - 0xDC00 + 0x10000; }; 



Komposisi dan dekomposisi


Unicode termasuk mekanisme untuk mengubah bentuk karakter, yang sangat memperluas set mesin terbang yang didukung. Ini berlaku untuk diakritik yang dapat dikombinasikan. Mereka dimasukkan setelah karakter utama. Beberapa tanda diakritik dapat diterapkan pada tanda yang sama. Unicode juga berisi versi pra-kompilasi dari sebagian besar kombinasi ini untuk penggunaan normal.

Beberapa urutan karakter juga dapat direpresentasikan sebagai karakter tunggal yang disebut karakter yang dikompilasi sebelumnya, alias karakter gabungan. Misalnya, karakter [ü] dapat dikodekan sebagai satu-satunya titik kode U + 00FC atau sebagai karakter dasar U + 0075 (u), diikuti oleh karakter non-mandiri U + 0308 (¨). Standar Unicode mengkodekan karakter majemuk untuk kompatibilitas dengan standar yang ditetapkan, seperti Latin 1, yang mencakup banyak karakter majemuk, seperti [ü] dan [ñ].

Karakter majemuk dapat diperluas untuk konsistensi atau analisis. Misalnya, ketika mengurutkan menurut abjad, simbol [ü] dapat didekomposisi menjadi [u] diikuti oleh simbol non-independen [¨]. Setelah dekomposisi seperti itu, algoritma lebih mudah untuk bekerja dengan urutan karakter. Ini membuatnya lebih mudah untuk mengurutkan dalam bahasa di mana pengubah karakter tidak mempengaruhi urutan abjad. Standar Unicode menetapkan urutan penguraian untuk semua karakter komposit. Ini juga mendefinisikan bentuk normalisasi untuk memberikan representasi karakter yang unik.

Unicode Myths


Dari slide presentasi Mark Davis "Myths of Unicode . "

  • Unicode hanya kode 16-bit . - Beberapa orang secara keliru percaya bahwa Unicode hanya kode 16-bit, di mana setiap karakter menempati 16 bit, dan karenanya ada 65.536 karakter yang mungkin. Sebenarnya, ini tidak sepenuhnya benar. Ini adalah mitos Unicode yang paling umum, jadi jika Anda juga berpikiran seperti itu sebelumnya, jangan berkecil hati.
  • Anda dapat mengambil titik kode apa pun yang tidak digunakan untuk kebutuhan Anda . - Tidak. Suatu hari nanti tempat ini akan diganti oleh simbol lain. Sebagai gantinya, gunakan pesawat untuk penggunaan pribadi atau area tanpa karakter di setiap bidang di mana tidak akan ada karakter menurut standar.
  • Setiap titik kode Unicode mewakili karakter . - Tidak. Ada banyak titik tanpa karakter (FFFE, FFFF, 1FFFE, dll.) Selain itu, ganti titik kode, titik kode pribadi dan tidak terpakai, serta kontrol / pemformatan "karakter" (RLM, ZWNJ, dll.)
  • Unicode kehabisan ruang . - Jika diisi secara linear, itu akan berakhir pada 2140. Tetapi tempat itu tidak mengisi secara linear. Rencana masa depan lihat di sini .
  • Semua karakter dicocokkan satu lawan satu . - Tidak. Opsinya adalah:
    • Satu ke banyak: (β → SS)
    • Mengingat konteksnya: (... Σ ← → ... ς dan pada saat yang sama ... ΣΤ ... ← → ... στ ...)
    • Berdasarkan lokal: (I ← → ı dan pada saat yang sama İ ← → i)

Penyandian Aplikasi Unicode


Jenis pengkodeanContoh
Objek HTML (desimal)
Objek HTML (hex)
Kode kontrol URL% F0% 9F% 96% 96
UTF-8 (hex)0xF0 0x9F 0x96 0x96 (f09f9696)
UTF-8 (biner)11110000: 10011111: 10010110: 10010110
UTF-16 / UTF-16BE (hex)0xD83D 0xDD96 (d83ddd96)
UTF-16LE (hex)0x3DD8 0x96DD (3dd896dd)
UTF-32 / UTF-32BE (hex)0x0001F596 (0001f596)
UTF-32LE (hex)0x96F50100 (96f50100)
Urutan melarikan diri oktal\ 360 \ 237 \ 226 \ 226

Kode sumber


Jenis pengkodeanContoh
Javascript\ u1F596
Json\ u1F596
C\ u1F596
C ++\ u1F596
Jawa\ u1F596
Python\ u1F596
Perl\ x {1F596}
Ruby\ u {1F596}
CSS\ 01F596

Daftar karakter luar biasa.



Berbagi dokumen dapat dengan cepat mengubah pengeditan menjadi pertarungan rap tertulis, yang dilakukan oleh pengaturan manajer yang semakin membingungkan dari U + 202a hingga U + 202e

Karakter khusus


Konsorsium Unicode telah menerbitkan diagram tanda baca umum tempat Anda dapat menemukan informasi lebih lanjut.

SimbolJudulDeskripsi
''U + FEFF Non-breaking space dengan lebar nol (Byte Order Mark - BOM)Ini memiliki properti keunikan yang penting ketika mengubah urutan byte. Ini juga memiliki lebar nol dan tembus pandang. Dalam perangkat lunak yang tidak sesuai (seperti penerjemah PHP), ini mengarah ke semua jenis contoh perilaku yang menyenangkan.
'￯'Membalikkan BOMTidak disamakan dengan karakter, kecuali untuk awal teks
'​''\ u200B' Ruang tanpa putus dengan lebar nolSimbol tanpa penampilan dan tanpa efek, kecuali untuk mencegah pembentukan ligatur.
' 'U + 00A0 Ruang tanpa putusMembuat karakter yang berdekatan tetap bersatu. Dikenal sebagai   dalam HTML.
''U + 00AD Tanda hubung lunakDalam HTML, ini berfungsi seperti ruang nol-lebar, tetapi ketika bertemu ujung garis (dan hanya dalam kasus ini) menunjukkan tanda hubung.
'‍'U + 200D Tanda nol-lebar (dengan penyatuan)Menyebabkan karakter tetangga terhubung (misalnya, karakter Arab atau emoji yang didukung). Dapat digunakan untuk emoji gabungan berurutan.
'⁠'Konektor Kata U + 2060Sama seperti U + 00A0, tetapi sama sekali tidak terlihat. Bagus untuk @ font-face di Twitter.
' 'Karakter ruang U + 1680 OghamMenandai ruang yang terlihat seperti tanda hubung. Sangat bagus untuk membawa programmer lebih dekat ke kegilaan: 1 + 2 === 3.
';'U + 037E Tanda Tanya YunaniTampak seperti titik koma. Juga cara yang menyenangkan untuk menjamah pengembang.
'‭'U + 202DMengubah arah teks dari kiri ke kanan.
'‮'U + 202EMengubah arah teks dari kanan ke kiri.
'ꓸ'U + A4F8 Lisu nada huruf mya tiGandakan poinnya.
'ꓹ'U + A4F9 Lisu nada huruf na poGandakan koma.
'ꓼ'U + A4FC Lisu nada huruf mya naGanda untuk titik koma.
'ꓽ'U + A4FD Lisu nada huruf mya jeuGandakan untuk usus besar.
'︀'Pemilih opsi (dari U + FE00 ke U + FE0F dan dari U + E0100 ke U + E01EF)Blok 256 karakter dengan lebar nol yang memiliki properti ID_Continue, yaitu, dapat digunakan dalam nama variabel (bukan huruf pertama). Apa yang membuat mereka istimewa adalah kursor mouse melewati mereka, karena mereka menggabungkan karakter, tidak seperti kebanyakan karakter lain dengan lebar nol.
'ᅟ'U + 115F Placeholder Hangul ChosonPada dasarnya mengisi ruang. Dirender sebagai karakter lebar nol (tidak terlihat) kecuali didukung secara eksplisit dalam rendering. Ditandai sebagai ID_Start
'ᅠ'U + 1160 Placeholder ChunsonMungkin mengisi ruang? Dirender sebagai karakter lebar nol (tidak terlihat) kecuali didukung secara eksplisit dalam rendering. Ditandai sebagai ID_Start
'ㅤ'Agregat Hangul U + 3164Secara umum, ini mengisi ruang. Dirender sebagai karakter lebar nol (tidak terlihat) kecuali didukung secara eksplisit dalam rendering. Ditandai sebagai ID_Start

Tunggu ... apa yang baru saja saya baca?

Pengidentifikasi variabel dapat mencakup spasi!


U + 3164 placeholder Hangul ditampilkan sebagai ruang yang luas. Jika karakter jelas tidak didukung dalam rendering , maka ditampilkan sebagai benar-benar tidak terlihat (dan tidak memakan ruang, yaitu, "lebar nol"). Ini berarti Anda tidak akan pernah melihat karakter pengganti karakter jelek ( ).

Saya belum yakin mengapa U + 3164 diperintahkan untuk berperilaku seperti ini. Menariknya, U + 3164 ditambahkan ke Unicode dalam versi 1.1 (1993) - sehingga spesialis Konsorsium punya banyak waktu untuk memikirkannya. Bagaimanapun, berikut adalah beberapa contoh.

 > var ᅟ = 'foo'; undefined > ᅟ 'foo' > var ㅤ= alert; undefined > var foo = 'bar' undefined > if ( foo ===ㅤ`baz` ){} // alert undefined > var varㅤfooㅤ\u{A60C}ㅤπ = 'bar'; undefined > varㅤfooㅤꘌㅤπ 'bar' 

** Catatan: ** Saya menguji rendering U + 3164 di Ubuntu dan OS X dengan parameter berikut: `node`,` php`, `ruby`,` python3.5`, `scala`,` vim`, `cat` , `chrome` +` github gist '. Atom adalah satu-satunya sistem yang gagal dengan (salah) menampilkan bidang kosong. Saya belum memeriksa kode di Emacs dan Sublime. Seperti yang saya pahami, Konsorsium Unicode tidak akan menetapkan ulang atau mengubah nama karakter atau poin kode, tetapi dapat dibujuk untuk mengubah properti karakter, seperti ID_Start dan ID_Continue.

Pengubah


Zero Width Combiner (ZWJ) adalah karakter yang tidak dapat dicetak dalam set komputer dari beberapa font yang kompleks, seperti Arab atau font India. Ketika ditempatkan di antara dua karakter yang seharusnya tidak terhubung, ZWJ memaksa mereka untuk mencetak dalam bentuk gabungan.

Zero Width Disconnector (ZWNJ) adalah karakter yang tidak dapat ditulis dalam set tulisan berbasis komputer dengan ligatur. Ketika ditempatkan di antara dua karakter yang jika tidak akan bergabung ke dalam ligatur, ZWNJ memaksa mereka untuk mencetak dalam bentuk final dan asli masing-masing. Bertindak sebagai ruang, tetapi digunakan ketika diinginkan untuk menjaga kata-kata dekat satu sama lain atau menggabungkan kata dengan morfemnya.

 > 'a' "a" > 'a\u{0308}' "ä" > 'a\u{20DE}\u{0308}' "a⃞̈" > 'a\u{20DE}\u{0308}\u{20DD}' "a⃞̈⃝" // Modifying Invisible Characters > '\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}' "‎‎‎‎‎‎‎‎‎‎" > '\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}\u{200E}'.length 10 

Huruf besar mengubah benturan


SimbolPoin kodeHasil
ß0x00DFSS
ı0x0131I
ſ0x017FS
0xFB00FF
fi0xFB01FI
fl0xFB02FL
0xFB03FFI
0xFB04FFL
0xFB05ST
0xFB06ST

Tabrakan konversi huruf kecil


SimbolPoin kodeHasil
K0x212Ak

Keanehan dan pemecahan masalah


  • Panjang garis biasanya ditentukan oleh jumlah titik kode . Ini berarti bahwa pasangan pengganti akan dianggap dua karakter. Beberapa diakritik dapat ditumpangkan pada simbol: a + ̈ == ̈a . Ini meningkatkan panjang string, hanya menghasilkan satu karakter.
  • Demikian pula, inversi string sering menjadi tugas yang tidak sepele . Sekali lagi, pasangan pengganti dan diakritik harus dibalik bersama. ES Reverser menawarkan solusi yang cukup bagus.
  • Perbandingan huruf besar dan kecil tidak selalu cocok . Mereka dapat diekspresikan dalam hubungan seperti itu:

    • Satu ke banyak: (ß → SS)
    • Mengingat konteksnya: (... Σ ← → ... ς dan ... ΣΤ ... ← → ... στ ...)
    • Berdasarkan lokal: (I ← → ı dan İ ← → i)

    Satu banding banyak


    Sebagian besar karakter di bawah ini mengekspresikan pemetaan satu-ke-banyak mereka dalam huruf besar dan lainnya dalam huruf kecil. Pada prinsipnya, daftar ini dapat dibagi menjadi dua bagian.

    Poin kodeSimbolJudulKarakter yang terkaitPoin Kode Terkait
    U + 00DFßEscet huruf kecil latin (S akut)s , sU + 0073, U + 0073
    U + 0130İHuruf latin "I" dengan titik di atasi , ̇U + 0069, U + 0307
    U + 0149ʼnHuruf kecil latin "n" oleh tanda kutip sebelumnyaʼ , nU + 02BC, U + 006E
    U + 01F0ǰHuruf kecil latin jj , ̌U + 006A, U + 030C
    U + 0390ΐYunani huruf kecil dengan dialisis dan tono.ι , ̈ ,U + 03B9, U + 0308, U + 0301
    U + 03B0ΰYunani huruf kecil ipsilon dengan dialisis dan tono.υ , ̈ ,U + 03C5, U + 0308, U + 0301
    U + 0587ևLigatur huruf kecil Armenia ech yiwnե , ւU + 0565, U + 0582
    U + 1E96Huruf kecil latin h dengan garis di bawah inih ,U + 0068, U + 0331
    U + 1E97Huruf kecil latin t dengan dieresist , ̈U + 0074, U + 0308
    U + 1E98Huruf kecil latin w dengan cincin di atasw , ̊U + 0077, U + 030A
    U + 1E99Huruf kecil latin y dengan cincin di atasy , ̊U + 0079, U + 030A
    U + 1E9AHuruf kecil latin a dengan separuh kanan ringa , ʾU + 0061, U + 02BE
    U + 1E9EHuruf latin akut ss , sU + 0073, U + 0073
    U + 1F50Yunani huruf kecil ipsilon dengan psilυ , ̓U + 03C5, U + 0313
    U + 1F52Huruf kecil Yunani ipsilon dengan psili dan variaυ , ̓ ,U + 03C5, U + 0313, U + 0300
    U + 1F54Huruf kecil Yunani ipsilon dengan psily dan oxyυ , ̓ ,U + 03C5, U + 0313, U + 0301
    U + 1F56Huruf kecil Yunani ipsilon dengan psily dan perisomeυ , ̓ ,U + 03C5, U + 0313, U + 0342
    U + 1F80Alfa huruf kecil Yunani dengan psili dan ipogemen , ιU + 1F00, U + 03B9
    U + 1F81Alfa huruf kecil Yunani dengan dasia dan ipogemen , ιU + 1F01, U + 03B9
    U + 1F82Alfa huruf kecil Yunani dengan psilia dan varia dan ipogemen , ιU + 1F02, U + 03B9
    U + 1F83Alfa huruf kecil Yunani dengan dasia dan varia dan ipogemen , ιU + 1F03, U + 03B9
    U + 1F84Alfa huruf kecil Yunani dengan psily dan oxy dan ipogemen , ιU + 1F04, U + 03B9
    U + 1F85Alfa huruf kecil Yunani dengan dasia dan oxy dan ipogemen , ιU + 1F05, U + 03B9
    U + 1F86Yunani huruf kecil alfa dengan psily dan perispomenti dan ipogemen , ιU + 1F06, U + 03B9
    U + 1F87Yunani huruf kecil alfa dengan dasia dan perispomenti dan hypogrammen , ιU + 1F07, U + 03B9
    U + 1F88Alfa huruf besar Yunani dengan psil dan programmer , ιU + 1F00, U + 03B9
    U + 1F89Alfa huruf besar Yunani dengan dasia dan programmer , ιU + 1F01, U + 03B9
    U + 1F8AAlfa huruf kapital Yunani dengan psilia dan varia dan program , ιU + 1F02, U + 03B9
    U + 1F8BHuruf kapital huruf Yunani alfa dengan dasia dan varia dan prog , ιU + 1F03, U + 03B9
    U + 1F8CAlfa huruf kapital Yunani dengan psily dan oxy dan prog , ιU + 1F04, U + 03B9
    U + 1F8DAlfa huruf besar Yunani dengan dasia dan oksi dan program , ιU + 1F05, U + 03B9
    U + 1F8EHuruf alfabet Yunani dengan psily dan perispomenti dan programmemeny , ιU + 1F06, U + 03B9
    U + 1F8FAlfa huruf kapital Yunani dengan dasia dan perispomenti dan prog , ιU + 1F07, U + 03B9
    U + 1F90Huruf kecil Yunani ini dengan psily dan ipogemen , ιU + 1F20, U + 03B9
    U + 1F91Huruf kecil Yunani a dengan dasia dan ipogemen , ιU + 1F21, U + 03B9
    U + 1F92Huruf kecil Yunani ini dengan psilia dan varia dan ipogemen , ιU + 1F22, U + 03B9
    U + 1F93Huruf kecil Yunani eta dengan dasia dan varia dan ipogemen , ιU + 1F23, U + 03B9
    U + 1F94Huruf kecil Yunani a dengan psilia dan oksia dan ipogemen , ιU + 1F24, U + 03B9
    U + 1F95Huruf kecil Yunani eta dengan dasia dan oksia dan ipogemen , ιU + 1F25, U + 03B9
    U + 1F96Huruf kecil Yunani ini dengan psily dan perispomenti dan ipogemen , ιU + 1F26, U + 03B9
    U + 1F97Huruf kecil Yunani eta dengan dasia dan perisopmenti dan hypogrammen , ιU + 1F27, U + 03B9
    U + 1F98Huruf kapital Yunani ini dengan psilah dan program , ιU + 1F20, U + 03B9
    U + 1F99Huruf kapital Yunani ini dengan dasia dan programmer , ιU + 1F21, U + 03B9
    U + 1F9AHuruf kapital Yunani ini dengan psilia dan varia dan prosgrammemeny , ιU + 1F22, U + 03B9
    U + 1F9BHuruf kapital Yunani ini dengan dasia dan varia dan prosgrammemeny , ιU + 1F23, U + 03B9
    U + 1F9CHuruf kapital Yunani ini dengan psilia dan oxy dan programmer , ιU + 1F24, U + 03B9
    U + 1F9DHuruf kapital Yunani ini dengan dasia dan oksia dan programmer , ιU + 1F25, U + 03B9
    U + 1F9EHuruf kapital Yunani ini dengan psily dan perispomenty dan prosgrammeny , ιU + 1F26, U + 03B9
    U + 1F9FHuruf kapital Yunani ini dengan dasia dan perispomenti dan programmer , ιU + 1F27, U + 03B9
    U + 1FA0Huruf kecil Yunani omega dengan psili dan ipogemen , ιU + 1F60, U + 03B9
    U + 1FA1Huruf kecil Yunani omega dengan dasia dan ipogemen , ιU + 1F61, U + 03B9
    U + 1FA2Huruf kecil Yunani omega dengan psilia dan varia dan ipogemen , ιU + 1F62, U + 03B9
    U + 1FA3Huruf Yunani kecil omega dengan dasia dan varia dan ipogemen , ιU + 1F63, U + 03B9
    U + 1FA4Huruf Yunani kecil omega dengan psily dan oxy dan ipogemen , ιU + 1F64, U + 03B9
    U + 1FA5Huruf kecil Yunani omega dengan dasia dan oxy dan ipogemen , ιU + 1F65, U + 03B9
    U + 1FA6Huruf Yunani kecil omega dengan psily dan perispomenti dan ipogemen , ιU + 1F66, U + 03B9
    U + 1FA7Huruf kecil Yunani omega dengan dasia dan perispomenti dan hipogram , ιU + 1F67, U + 03B9
    U + 1FA8Bahasa Yunani huruf omega dengan psili dan program , ιU + 1F60, U + 03B9
    U + 1FA9Huruf kapital Yunani Omega dengan dasia dan programmer , ιU + 1F61, U + 03B9
    U + 1FAAHuruf kapital Yunani omega dengan psilia dan varia dan prosgrammemeny , ιU + 1F62, U + 03B9
    U + 1FABHuruf kapital bahasa Yunani Omega dengan dasia dan varia dan programmer , ιU + 1F63, U + 03B9
    U + 1FACHuruf kapital Yunani omega dengan psilia dan oxy dan progamemen , ιU + 1F64, U + 03B9
    U + 1FADHuruf kapital Yunani omega dengan dasia dan oksia dan programmemen , ιU + 1F65, U + 03B9
    U + 1FAEHuruf kapital Yunani omega dengan psily dan perispomenti dan prosgrammemeny , ιU + 1F66, U + 03B9
    U + 1FAFHuruf kapital Yunani omega dengan dasia dan perispomenti dan prosgrammemeny , ιU + 1F67, U + 03B9
    U + 1FB2Alfa huruf kecil Yunani dengan varia dan ipogemen , ιU + 1F70, U + 03B9
    U + 1FB3Alfa huruf kecil Yunani dengan ogogerammeniα , ιU + 03B1, U + 03B9
    U + 1FB4Alfa huruf kecil Yunani dengan oxy dan ipogemenά , ιU + 03AC, U + 03B9
    U + 1FB6Alfa huruf kecil Yunani dengan perispomentiα ,U + 03B1, U + 0342
    U + 1FB7Alfa huruf kecil Yunani dengan perispomenti dan ipogemenα , ͂ ιU + 03B1, U + 0342, U + 03B9
    U + 1FBCAlfa huruf besar Yunani dengan progα , ιU + 03B1, U + 03B9
    U + 1FC2Huruf kecil Yunani et dengan varia dan ipogemen , ιU + 1F74, U + 03B9
    U + 1FC3Huruf kecil Yunani a dengan ipogemenη , ιU + 03B7, U + 03B9
    U + 1FC4Huruf kecil Yunani eta dengan oxy dan ipogemenή , ιU + 03AE, U + 03B9
    U + 1FC6Huruf kecil Yunani a dengan perispomentiη ,U + 03B7, U + 0342
    U + 1FC7Huruf kecil Yunani a dengan perispomenti dan ipogemenη , ͂ ιU + 03B7, U + 0342, U + 03B9
    U + 1FCCHuruf kapital Yunani ini dengan progη , ιU + 03B7, U + 03B9
    U + 1FD2Yunani huruf kecil dengan dialisis dan variaι , ̈ ,U + 03B9, U + 0308, U + 0300
    U + 1FD3Yunani huruf kecil dengan dialisis dan oxyι , ̈ ,U + 03B9, U + 0308, U + 0301
    U + 1FD6Yunani huruf kecil dengan perispomentiι ,U + 03B9, U + 0342
    U + 1FD7Yunani huruf kecil dengan dialisis dan periodeι , ̈ ,U + 03B9, U + 0308, U + 0342
    U + 1FE2Yunani huruf kecil ipsilon dengan dialisis dan varia.υ , ̈ ,U + 03C5, U + 0308, U + 0300
    U + 1FE3Yunani huruf kecil ipsilon dengan dialisis dan oxy.υ , ̈ ,U + 03C5, U + 0308, U + 0301
    U + 1FE4Yunani huruf kecil rho dengan psiliρ , ̓U + 03C1, U + 0313
    U + 1FE6Yunani huruf kecil ipsilon dengan perispomentiυ ,U + 03C5, U + 0342
    U + 1FE7Yunani huruf kecil ipsilon dengan dialisis dan titikυ , ̈ ,U + 03C5, U + 0308, U + 0342
    U + 1FF2Huruf Yunani kecil omega dengan varia dan ipogemen , ιU + 1F7C, U + 03B9
    U + 1FF3Huruf kecil Yunani omega dengan ogogemenω , ιU + 03C9, U + 03B9
    U + 1FF4Huruf kecil Yunani omega dengan oxia dan ipogemenώ , ιU + 03CE, U + 03B9
    U + 1FF6Huruf kecil Yunani omega dengan perispomentiω ,U + 03C9, U + 0342
    U + 1FF7Huruf Yunani kecil omega dengan perispomenti dan ipogemenω , ͂ ιU + 03C9, U + 0342, U + 03B9
    U + 1FFCGreek Capital Letter Omega dengan Programω , ιU + 03C9, U + 03B9
    U + FB00Ligatur huruf kecil Latin Fff fU + 0066, U + 0066
    U + FB01Ligatur huruf kecil Fi Fif , iU + 0066, U + 0069
    U + FB02Ligatur huruf kecil latin Flf lU + 0066, U + 006C
    U + FB03Ligatur huruf kecil latin Ffif , f , iU + 0066, U + 0066, U + 0069
    U + FB04Ligatur huruf kecil latin Fflf , f , lU + 0066, U + 0066, U + 006C
    U + FB05Ligatur huruf kecil latin panjang STs , tU + 0073, U + 0074
    U + FB06Ligatur huruf kecil latin Sts , tU + 0073, U + 0074
    U + FB13Ligatur huruf kecil Armenia Men Nowմ , նU + 0574, U + 0576
    U + FB14Ligatur huruf kecil Armenia Men Echմ , եU + 0574, U + 0565
    U + FB15Ligatur huruf kecil Armenia Men Iniմ , իU + 0574, U + 056B
    U + FB16Ligatur huruf kecil Armenia Vew Nowվ , նU + 057E, U + 0576
    U + FB17Ligatur huruf kecil Armenia Men Xehմ , խU + 0574, U + 056D

    Paket dan pustaka hebat


    • PhantomScript -: ghost :: flashlight: Melaksanakan JavaScript yang tak terlihat dan rekayasa sosial
    • ESReverser - Penanganan string JavaScript berbasis Unicode .
    • mimic - Penyalahgunaan Unicode
    • python-ftfy - Mencoba membuat representasi teks yang benar dan lengkap maksimum yang diterima dalam Unicode.
    • vim-troll-stopper - Melindungi kode Anda dari troll unicode.

    Emoji




    Unicode (diversity), . .

    , , . — . :

    U+1F469 U+200D U+2764 U+FE0F U+200D U+1F469️‍️‍️‍couple with heart: woman, woman
    U+1F468 U+200D U+1F468 U+200D U+1F467 U+200D U+1F466

    , .

    8.0 ( 2015 ) - . , ( , FitzpatrickSkinType.pdf). .

    Unicode

    U+1F3FB-1-2
    U+1F3FC-3
    U+1F3FD-4
    U+1F3FE-5
    U+1F3FF-6

    , \u{1F466}\u{1F3FE} .


    +






    JavaScript (ES6)

    , ID_START , . , ID_CONTINUE , .

     // How convenient! var π = Math.PI; // Sometimes, you just have to use the Bad Parts of JavaScript: var ಠ_ಠ = eval; // Code, YU NO WORK?! var ლ_ಠ益ಠ_ლ = 42; // How about a JavaScript library for functional programming? var λ = function() {}; // Obfuscate boring variable names for great justice var \u006C\u006F\u006C\u0077\u0061\u0074 = 'heh'; // …or just make up random ones var Ꙭൽↈⴱ = 'huh'; // While perfectly valid, this doesn't work in most browsers: var foo\u200Cbar = 42; // This is *not* a bitwise left shift (`<<`): var 〱〱 = 2; // This is, though: 〱〱 << 〱〱; // 8 // Give yourself a discount: var price_9̶9̶_89 = 'cheap'; // Fun with Roman numerals var Ⅳ = 4; var Ⅴ = 5; Ⅳ + Ⅴ; // 9 // Cthulhu was here var Hͫ̆̒̐ͣ̊̄ͯ͗͏̵̗̻̰̠̬͝ͅE̴̷̬͎̱̘͇͍̾ͦ͊͒͊̓̓̐_̫̠̱̩̭̤͈̑̎̋ͮͩ̒͑̾͋͘Ç̳͕̯̭̱̲̣̠̜͋̍O̴̦̗̯̹̼ͭ̐ͨ̊̈͘͠M̶̝̠̭̭̤̻͓͑̓̊ͣͤ̎͟͠E̢̞̮̹͍̞̳̣ͣͪ͐̈T̡̯̳̭̜̠͕͌̈́̽̿ͤ̿̅̑Ḧ̱̱̺̰̳̹̘̰́̏ͪ̂̽͂̀͠ = 'Zalgo'; 

    CSS .

     <!-- place this within the document head --> <meta charset="UTF-8" /> <!-- error message --> <div class="ಠ_ಠ">You do not have access to this page.</div> <!-- success message --> <div class="">Your changes have been saved successfully!</div> 

     .ಠ_ಠ { border: 1px solid #f00; } . { background: lightgreen; } 

    HTML


    HTML- , , .

    , HTML .

     // U+1160 HANGUL JUNGSEONG FILLER transformAllTags('ᅠ'); // An actual HTML element node designed to look like a comment node, using the U+01C3 LATIN LETTER RETROFLEX CLICK // <ǃ-- name="viewport" content="width=device-width"></ǃ--> transformAllTags('ǃ--'); // or even <ᅠ⃝ transformAllTags('\u{1160}\u{20dd}'); // and for a bonus, all existing tag names will have each character ensquared. h⃞t⃞m⃞l⃞ transformAllTags(); function transformAllTags (newName){ // querySelectorAll doesn't actually return an array. Array.from(document.querySelectorAll('*')) .forEach(function(x){ transformTag(x, newName); }); } function wonky(str){ return str.split('').join('\u{20de}') + '\u{20de}'; } function transformTag(tagIdOrElem, tagType){ var elem = (tagIdOrElem instanceof HTMLElement) ? tagIdOrElem : document.getElementById(tagIdOrElem); if(!elem || !(elem instanceof HTMLElement))return; var children = elem.childNodes; var parent = elem.parentNode; var newNode = document.createElement(tagType||wonky(elem.tagName)); for(var a=0;a<elem.attributes.length;a++){ newNode.setAttribute(elem.attributes[a].nodeName, elem.attributes[a].value); } for(var i= 0,clen=children.length;i<clen;i++){ newNode.appendChild(children[0]); //0...always point to the first non-moved element } newNode.style.cssText = elem.style.cssText; parent.replaceChild(newNode,elem); } 

    :

     function testBegin(str){ try{ eval(`document.createElement( '${str}' );`) return true; } catch(e){ return false; } } function testContinue(str){ try{ eval(`document.createElement( 'a${str}' );`) return true; } catch(e){ return false; } } 

    :

     // Test if dashes can start an HTML Tag > testBegin('-') < false > testContinue('-') < true > testBegin('ᅠ-') // Prepend dash with U+1160 HANGUL JUNGSEONG FILLER < true 


    TrueType OpenType UTF-8, 65 535 . 1,1 UTF-8, .








    256 .



    , () (CJK). , , « ».


    . 17- .

    #
    U+0000U+007F128
    — 1U+0080U+00FF128
    — AU+0100U+017F128
    — BU+0180U+024F208
    U+0250U+02AF96
    U+02B0U+02FF80
    U+0300U+036F112
    U+0370U+03FF135
    U+0400U+04FF256
    U+0500U+052F48
    U+0530U+058F89
    U+0590U+05FF87
    U+0600U+06FF255
    U+0700U+074F77
    U+0750U+077F48
    U+0780U+07BF50
    U+07C0U+07FF59
    U+0800U+083F61
    U+0840U+085FTanggal 29
    — AU+08A0U+08FF50
    U+0900U+097F128
    U+0980U+09FF93
    U+0A00U+0A7F79
    U+0A80U+0AFF85
    U+0B00U+0B7F90
    U+0B80U+0BFF72
    U+0C00U+0C7F96
    U+0C80U+0CFF87
    U+0D00U+0D7F100
    U+0D80U+0DFF90
    U+0E00U+0E7F87
    U+0E80U+0EFF67
    U+0F00U+0FFF211
    U+1000U+109F160
    U+10A0U+10FF88
    U+1100U+11FF256
    U+1200U+137F358
    U+1380U+139F26
    U+13A0U+13FF92
    U+1400U+167F640
    U+1680U+169FTanggal 29
    U+16A0U+16FF89
    U+1700U+171F20
    U+1720U+173F23
    U+1740U+175F20
    U+1760U+177F18
    U+1780U+17FF114
    U+1800U+18AF156
    U+18B0U+18FF70
    U+1900U+194F68
    U+1950U+197F35
    U+1980U+19DF83
    U+19E0U+19FF32
    U+1A00U+1A1F30
    U+1A20U+1AAF127
    U+1AB0U+1AFF15
    U+1B00U+1B7F121
    U+1B80U+1BBF64
    U+1BC0U+1BFF56
    U+1C00U+1C4F74
    -U+1C50U+1C7F48
    U+1CC0U+1CCF8
    U+1CD0U+1CFF41
    U+1D00U+1D7F128
    U+1D80U+1DBF64
    U+1DFFU+1DC0U+1DFF58
    U+1E00U+1EFF256
    U+1F00U+1FFF233
    U+2000U+206F111
    U+2070U+209F42
    U+20A0U+20CF31
    U+20D0U+20FF33
    U+2100U+214F80
    U+2150U+218F60
    U+2190U+21FF112
    U+2200U+22FF256
    U+2300U+23FF251
    U+2400U+243F39
    U+2440U+245F11
    U+2460U+24FF160
    U+2500U+257F128
    U+2580U+259F32
    U+25A0U+25FF96
    U+2600U+26FF256
    DingbatsU+2700U+27BF192
    — AU+27C0U+27EF48
    — AU+27F0U+27FF16
    U+2800U+28FF256
    — BU+2900U+297F128
    — BU+2980U+29FF128
    U+2A00U+2AFF256
    U+2B00U+2BFF206
    U+2C00U+2C5F94
    — CU+2C60U+2C7F32
    U+2C80U+2CFF123
    U+2D00U+2D2F40
    U+2D30U+2D7F59
    U+2D80U+2DDF79
    — AU+2DE0U+2DFF32
    U+2E00U+2E7F67
    U+2E80U+2EFF115
    U+2F00U+2FDF214
    U+2FF0U+2FFF12
    U+3000U+303F64
    U+3040U+309F93
    U+30A0U+30FF96
    U+3100U+312F41
    U+3130U+318F94
    U+3190U+319F16
    U+31A0U+31BF27
    U+31C0U+31EF36
    U+31F0U+31FF16
    U+3200U+32FF254
    U+3300U+33FF256
    — AU+3400U+4DBF6191
    « »U+4DC0U+4DFF64
    U+4E00U+9FFF20941
    U+A000U+A48F1165
    U+A490U+A4CF55
    U+A4D0U+A4FF48
    U+A500U+A63F300
    — BU+A640U+A69F96
    U+A6A0U+A6FF88
    U+A700U+A71F32
    — DU+A720U+A7FF159
    U+A800U+A82F44
    U+A830U+A83F10
    U+A840U+A87F56
    U+A880U+A8DF81
    U+A8E0U+A8FF30
    -U+A900U+A92F48
    U+A930U+A95F37
    — AU+A960U+A97FTanggal 29
    U+A980U+A9DF91
    — BU+A9E0U+A9FF31
    U+AA00U+AA5F83
    — AU+AA60U+AA7F32
    -U+AA80U+AADF72
    U+AAE0U+AAFF23
    — AU+AB00U+AB2F32
    — EU+AB30U+AB6F54
    U+AB70U+ABBF80
    U+ABC0U+ABFF56
    U+AC00U+D7AF2
    — BU+D7B0U+D7FF72
    U+D800U+DB7F2
    U+DB80U+DBFF2
    U+DC00U+DFFF2
    U+E000U+F8FF2
    U+F900U+FAFF472
    U+FB00U+FB4F58
    — AU+FB50U+FDFF643
    U+FE00U+FE0F16
    U+FE10U+FE1F10
    U+FE20U+FE2F16
    U+FE30U+FE4F32
    U+FE50U+FE6F26
    — BU+FE70U+FEFF141
    U+FF00U+FFEF225
    Karakter khususU+FFF0U+FFFF7
    U+10000U+1007F88
    U+10080U+100FF123
    U+10100U+1013F57
    U+10140U+1018F77
    U+10190U+101CF13
    U+101D0U+101FF46
    U+10280U+1029FTanggal 29
    U+102A0U+102DF49
    U+102E0U+102FF28
    U+10300U+1032F36
    U+10330U+1034F27
    U+10350U+1037F43
    U+10380U+1039F31
    U+103A0U+103DF50
    U+10400U+1044F80
    U+10450U+1047F48
    U+10480U+104AF40
    U+10500U+1052F40
    U+10530U+1056F53
    U+10600U+1077F341
    U+10800U+1083F55
    U+10840U+1085F31
    U+10860U+1087F32
    U+10880U+108AF40
    U+108E0U+108FF26
    U+10900U+1091FTanggal 29
    U+10920U+1093F27
    U+10980U+1099F32
    U+109A0U+109FF90
    U+10A00U+10A5F65
    U+10A60U+10A7F32
    U+10A80U+10A9F32
    U+10AC0U+10AFF51
    U+10B00U+10B3F61
    U+10B40U+10B5F30
    U+10B60U+10B7F27
    U+10B80U+10BAFTanggal 29
    U+10C00U+10C4F73
    U+10C80U+10CFF108
    U+10E60U+10E7F31
    U+11000U+1107F109
    U+11080U+110CF66
    -U+110D0U+110FF35
    U+11100U+1114F67
    U+11150U+1117F39
    U+11180U+111DF94
    U+111E0U+111FF20
    U+11200U+1124F61
    U+11280U+112AF38
    U+112B0U+112FF69
    U+11300U+1137F85
    U+11480U+114DF82
    U+11580U+115FF92
    U+11600U+1165F79
    U+11680U+116CF66
    U+11700U+1173F57
    -U+118A0U+118FF84
    U+11AC0U+11AFF57
    U+12000U+123FF922
    U+12400U+1247F116
    U+12480U+1254F196
    U+13000U+1342F1071
    U+14400U+1467F583
    U+16800U+16A3F569
    U+16A40U+16A6F43
    U+16AD0U+16AFF36
    U+16B00U+16B8F127
    U+16F00U+16F9F133
    U+1B000U+1B0FF2
    U+1BC00U+1BC9F143
    U+1BCA0U+1BCAF4
    U+1D000U+1D0FF246
    U+1D100U+1D1FF231
    U+1D200U+1D24F70
    « »U+1D300U+1D35F87
    U+1D360U+1D37F18
    U+1D400U+1D7FF996
    SignWritingU+1D800U+1DAAF672
    U+1E800U+1E8DF213
    U+1EE00U+1EEFF143
    U+1F000U+1F02F44
    U+1F030U+1F09F100
    U+1F0A0U+1F0FF82
    U+1F100U+1F1FF173
    U+1F200U+1F2FF57
    U+1F300U+1F5FF766
    U+1F600U+1F64F80
    U+1F650U+1F67F48
    U+1F680U+1F6FF98
    U+1F700U+1F77F116
    U+1F780U+1F7FF85
    — CU+1F800U+1F8FF148
    U+1F900U+1F9FF15
    — BU+20000U+2A6DF42676
    — CU+2A700U+2B73F60
    — DU+2B740U+2B81F27
    — EU+2B820U+2CEAF2
    U+2F800U+2FA1F542
    TagsU+E0000U+E007F97
    U+E0100U+E01EF240
    — AU+F0000U+FFFFF4
    — BU+100000U+10FFFF4


    :

    • — - .
    • — , .
    • — .
    • — , . .
    • , — , . , .
    • — , . , [Ä] [A] [¨].
    • — .
    • — , , . .
    • — , .
    • — .

    : c codepoints.net .


Source: https://habr.com/ru/post/id485148/


All Articles