Exercise 3: MySQL's utf8 Trap and Why It Never Applied Here — Possible Solution ==================================================================== WHAT MYSQL'S LEGACY utf8 ALIAS FAILS TO SUPPORT ------------------------------ Per this chapter, MySQL's own legacy utf8 charset alias only supports up to 3 bytes per character. That's enough for most common kanji, but not for every 4-byte Unicode character, including rarer CJK extension ideographs and most emoji - a column configured with that legacy alias could fail to correctly store those characters. WHY THIS COURSE'S OWN database.yml NEVER NEEDED A MANUAL FIX ------------------------------ Per this chapter, Rails has defaulted its own generated config/database.yml to the genuinely complete utf8mb4 encoding automatically since Rails 5.2, specifically to avoid this exact class of problem. Since Chapter 1's rails new --database=mysql command already produced a configuration using that modern default, this chapter had no manual charset fix left to make. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly explains what MySQL's legacy utf8 alias fails to support (characters requiring more than 3 bytes), and correctly explains that Rails' own generator has defaulted to utf8mb4 since Rails 5.2, which is why this course's own database configuration already avoided the trap without any manual intervention.