MySQL by default stores unicode stuff in 3-byte unicode. Previously, I had gotten around this limitation by forcing the site into pure ASCII mode, which caused all non-ASCII characters to be encoded in html rather than unicode, so it could handle emojis, etc. fine.
Because I am planning on upgrading, though, I converted everything to four-byte unicode to prepare. Everything still works, there's just a bug in previewing that I can't be arsed to figure out as I fixed everything else.