Das trifft so auch vollständig auf die Kodierung als Zeichenreferenzen zu da dort ein einzelnes Zeichen ja ebenfalls nicht immer gleich viele Bytes belegt. Im Prinzip gehen also sowohl UTF-8 als auch ASCII+Zeichenreferenzen gleich schlecht mit der alten Datenbank. (Nicht ganz: Zeichenreferenzen bereiten dir Probleme beim Suchen von Substrings.)
Bezüglich der Byte-Thematik muss ich mich erst entsprechend einlesen, da weiss ich nicht genau, was du meinst. Unter http://dev.mysql.com/doc/mysql/en/Charset-Unicode.html steht jedenfalls, dass UTF-8 zum Speichern von Daten erst seit Version 4.1 funktioniert.
Ich habe es mit einer alten MySQL-Datenbank probiert und UTF-8 funktionierte nicht (also wenn ich über ein Formular mit charset=utf-8 Text an die Datenbank geschickt habe), ASCII + Zeichenreferenzen (wenn ich über ein Formular mit charset=ISO-8859-1 Text an die Datenbank geschickt habe) funktionierte hingegen schon...
Aber: Unicode kann man ja zum Beispiel auch als UTF-32 bzw. UCS-4 speichern. Dann haben alle Zeichen die gleiche Länge (4 Bytes) und du kannst die Zeichenfunktionen wieder - mit der Ausnahme dass alle Zahlen mal vier gerechnet werden müssen - voll nutzen.
Hast Du da einen Link, wo ich das genau nachlesen kann?
Thanxs, Stephan