มุมมองการเข้ารหัส: utf8, utf16, unicodeScalars
ทำงานกับรูปแบบการเข้ารหัสที่แตกต่างกัน
มุมมองการเข้ารหัส: utf8, utf16, unicodeScalars เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
มุมมองการเข้ารหัสสตริง
String ของ Swift มีมุมมองหลายแบบสำหรับข้อความเดียวกันในระดับต่าง ๆ ได้แก่ utf8, utf16 และ unicodeScalars
let s = "Hi"
print(Array(s.utf8))
print(Array(s.utf16))มุมมอง utf8
มุมมอง .utf8 จะแสดงสตริงเป็นลำดับของหน่วยรหัส UTF-8 หรือไบต์ อักขระ ASCII แต่ละตัวใช้หนึ่งไบต์
let s = "AB"
for byte in s.utf8 {
print(byte)
}UTF-8 หลายไบต์
อักขระที่ไม่ใช่ ASCII ใช้ไบต์ UTF-8 หลายไบต์ ตัวอักษรที่มีเครื่องหมายกำกับหรือ emoji จะขยายเป็นหน่วยรหัสหลายหน่วย
let s = "\u{e9}"
print("UTF-8 bytes:", Array(s.utf8))มุมมอง utf16
มุมมอง .utf16 จะแสดงหน่วยรหัส UTF-16 อักขระทั่วไปส่วนใหญ่ใช้หนึ่งหน่วย ส่วนอักขระที่อยู่นอกระนาบพื้นฐานใช้สองหน่วย หรือคู่ตัวแทน
let s = "A\u{1F600}"
print("UTF-16 units:", Array(s.utf16))มุมมอง unicodeScalars
มุมมอง .unicodeScalars จะแสดงจุดรหัสพื้นฐาน ซึ่งอยู่ระหว่างอักขระกับไบต์ดิบ
let s = "Hi\u{1F600}"
for scalar in s.unicodeScalars {
print(scalar.value)
}การเปรียบเทียบมุมมอง
สตริงเดียวกันให้จำนวนที่แตกต่างกันในแต่ละมุมมอง เนื่องจากการเข้ารหัสแทนอักขระด้วยจำนวนหน่วยที่ไม่เท่ากัน
let s = "\u{1F600}"
print("characters:", s.count)
print("scalars:", s.unicodeScalars.count)
print("utf16:", s.utf16.count)
print("utf8:", s.utf8.count)เหตุใดจึงใช้ UTF-8
UTF-8 เป็นการเข้ารหัสหลักที่ใช้กับไฟล์และเครือข่าย มุมมอง .utf8 ช่วยให้คุณสร้างไบต์เหล่านั้นได้โดยตรง
let message = "OK"
let bytes = Array(message.utf8)
print(bytes)เหตุใดจึงใช้ UTF-16
UTF-16 ถูกใช้โดยแพลตฟอร์มและส่วนติดต่อโปรแกรมบางประเภท มุมมอง .utf16 ช่วยให้ทำงานร่วมกับสิ่งเหล่านั้นได้
let s = "Hi"
print("UTF-16 count:", s.utf16.count)การสร้างสตริงขึ้นใหม่
คุณสามารถสร้างสตริงขึ้นใหม่จากไบต์ UTF-8 โดยใช้ String(decoding:as:) ทำให้การแปลงไปและกลับเสร็จสมบูรณ์
let bytes: [UInt8] = Array("Swift".utf8)
let restored = String(decoding: bytes, as: UTF8.self)
print(restored)การนับไบต์เทียบกับอักขระ
ความยาวเป็นไบต์แตกต่างจากความยาวเป็นอักขระสำหรับข้อความที่ไม่ใช่ ASCII ให้เลือกมุมมองให้ตรงกับงานของคุณ ระหว่างการแสดงผลกับการจัดเก็บ
let s = "caf\u{e9}"
print("Characters:", s.count)
print("UTF-8 bytes:", s.utf8.count)การเลือกมุมมองที่เหมาะสม
ใช้อักขระสำหรับตรรกะการแสดงผล ใช้สเกลาร์สำหรับการวิเคราะห์ Unicode และใช้ utf8 หรือ utf16 สำหรับการเข้ารหัส การจัดเก็บ และการทำงานร่วมกับระบบอื่น
let s = "A\u{e9}\u{1F600}"
print("chars:", s.count, "scalars:", s.unicodeScalars.count, "utf8:", s.utf8.count)ตรวจสอบความเข้าใจ
ทบทวนว่ามุมมอง utf8 มีอะไรอยู่ภายใน
สรุป: มุมมองการเข้ารหัส
คุณได้เรียนรู้ว่า String มีมุมมอง utf8, utf16 และ unicodeScalars สำหรับข้อความเดียวกัน ว่าจำนวนของแต่ละมุมมองแตกต่างกันเพราะการเข้ารหัสใช้ขนาดหน่วยไม่เท่ากัน และควรเลือกมุมมองตามว่าต้องการใช้เพื่อการแสดงผล การวิเคราะห์ หรือการเข้ารหัสสำหรับการจัดเก็บและเครือข่าย
let s = "Hi\u{1F600}"
print("chars:", s.count, "utf8:", s.utf8.count, "utf16:", s.utf16.count)เรียนรู้ Swift ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 122
- บทเรียน
- 409
คำถามที่พบบ่อย
บทเรียน “มุมมองการเข้ารหัส: utf8, utf16, unicodeScalars” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “มุมมองการเข้ารหัส: utf8, utf16, unicodeScalars” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “มุมมองการเข้ารหัส: utf8, utf16, unicodeScalars”
ทำงานกับรูปแบบการเข้ารหัสที่แตกต่างกัน คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “มุมมองการเข้ารหัส: utf8, utf16, unicodeScalars” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- อักขระและกลุ่มกราฟีม
- Unicode Scalars และจุดรหัส
- การนับและวนซ้ำอักขระ
- มุมมองการเข้ารหัส: utf8, utf16, unicodeScalars