ฉันรู้ว่าคำถามนี้เก่าและมีคำตอบที่ยอมรับแล้ว แต่ฉันต้องการนำเสนอตัวอย่างเล็ก ๆ น้อย ๆ (หวังว่าจะเป็นประโยชน์กับใครบางคน)
เท่าที่ฉันรู้ว่าอักขระ ASCII เก่านั้นใช้อักขระหนึ่งไบต์ต่ออักขระ
ขวา. ที่จริงแล้วเนื่องจาก ASCII เป็นการเข้ารหัสแบบ 7 บิตจึงสนับสนุนรหัส 128 รหัส (95 รหัสสามารถพิมพ์ได้) ดังนั้นจึงใช้เพียงครึ่งไบต์ (หากมีเหตุผล)
อักขระ Unicode ต้องการจำนวนไบต์?
Unicode เพียงแมปอักขระกับ codepoints มันไม่ได้กำหนดวิธีการเข้ารหัส ไฟล์ข้อความไม่มีอักขระ Unicode แต่ไบต์ / octets ที่อาจแสดงถึงอักขระ Unicode
ฉันสมมติว่าอักขระ Unicode หนึ่งตัวสามารถมีตัวละครที่เป็นไปได้ทุกภาษาจากทุกภาษาฉันจะแก้ไขไหม?
เลขที่ แต่เกือบ ใช่แล้ว แต่ก็ยังไม่มี
ดังนั้นต้องมีกี่ไบต์ต่อตัวอักษร?
เช่นเดียวกับคำถามที่ 2 ของคุณ
UTF-7, UTF-6, UTF-16 ฯลฯ หมายถึงอะไร? พวกเขาบางรุ่น Unicode ชนิด?
ไม่พวกเขากำลังเข้ารหัส พวกเขากำหนดวิธีไบต์ / octets ควรเป็นตัวแทนของตัวละคร Unicode
ตัวอย่างบางส่วน หากบางรายการไม่สามารถแสดงในเบราว์เซอร์ของคุณ (อาจเป็นเพราะตัวอักษรไม่รองรับ) ให้ไปที่http://codepoints.net/U+1F6AA
(แทนที่1F6AA
ด้วย codepoint เป็น hex) เพื่อดูภาพ
- U + 0061 LATIN เล็กอักษร A:
a
- Nº: 97
- UTF-8: 61
- UTF-16: 00 61
- เครื่องหมายลิขสิทธิ์ U + 00A9:
©
- Nº: 169
- UTF-8: C2 A9
- UTF-16: 00 A9
- เครื่องหมาย U + 00AE ที่ลงทะเบียน:
®
- Nº: 174
- UTF-8: C2 AE
- UTF-16: 00 AE
- U + 1337 ชาติพันธุ์ศรีวัฒน์ที่สลับซับซ้อน:
ጷ
- Nº: 4919
- UTF-8: E1 8C B7
- UTF-16: 13 37
- U + 2014 EM DASH:
—
- Nº: 8212
- UTF-8: E2 80 94
- UTF-16: 20 14
- U + 2030 ต่อการเข้าสู่ระบบ MILLE:
‰
- Nº: 8240
- UTF-8: E2 80 B0
- UTF-16: 20 30
- สัญญาณยูโร U + 20AC:
€
- Nº: 8364
- UTF-8: E2 82 AC
- UTF-16: 20 AC
- เครื่องหมายการค้าของ U + 2122:
™
- Nº: 8482
- UTF-8: E2 84 A2
- UTF-16: 21 22
- U + 2603 SNOWMAN:
☃
- Nº: 9731
- UTF-8: E2 98 83
- UTF-16: 26 03
- U + 260E โทรศัพท์ดำ:
☎
- Nº: 9742
- UTF-8: E2 98 8E
- UTF-16: 26 0E
- U + 2614 ร่มพร้อมกับ RAIN DROPS:
☔
- Nº: 9748
- UTF-8: E2 98 94
- UTF-16: 26 14
- U + 263A หน้าขาวยิ้มแย้ม:
☺
- Nº: 9786
- UTF-8: E2 98 BA
- UTF-16: 26 3A
- U + 2691 ธงดำ:
⚑
- Nº: 9873
- UTF-8: E2 9A 91
- UTF-16: 26 91
- สัญลักษณ์ U + 269B อะตอม:
⚛
- Nº: 9883
- UTF-8: E2 9A 9B
- UTF-16: 26 9B
- เครื่องบิน U + 2708:
✈
- Nº: 9992
- UTF-8: E2 9C 88
- UTF-16: 27 08
- U + 271E SHADOWED LATIN LATIN CROSS:
✞
- Nº: 10014
- UTF-8: E2 9C 9E
- UTF-16: 27 1E
- ใบหน้ามาร์ค POSTAL U + 3020:
〠
- Nº: 12320
- UTF-8: E3 80 A0
- UTF-16: 30 20
- U + 8089 CJK UNIFIED IDEOGRAPH-8089:
肉
- Nº: 32905
- UTF-8: E8 82 89
- UTF-16: 80 89
- U + 1F4A9 กอง POO:
💩
- Nº: 128169
- UTF-8: F0 9F 92 A9
- UTF-16: D8 3D DC A9
- U + 1F680 ROCKET:
🚀
- Nº: 128640
- UTF-8: F0 9F 9A 80
- UTF-16: D8 3D DE 80
โอเคฉันถูกพาไป ...
ข้อเท็จจริงสนุก:
- หากคุณกำลังมองหาตัวอักษรที่เฉพาะเจาะจงคุณสามารถคัดลอกและวางไว้บนhttp://codepoints.net/
- ฉันเสียเวลาไปกับรายการที่ไร้ประโยชน์นี้ (แต่มันก็เรียงลำดับ!)
- MySQL มีชุดอักขระที่เรียกว่า "utf8" ซึ่งจริงๆแล้วไม่รองรับอักขระที่ยาวเกิน 3 ไบต์ ดังนั้นคุณไม่สามารถแทรกกองปูได้สนามจะถูกตัดอย่างเงียบ ๆ ใช้ "utf8mb4" แทน
- มีเป็นหน้าทดสอบมนุษย์หิมะ (unicodesnowmanforyou.com)