MySQL dobrze sobie z tym radzi:
CREATE TEMPORARY TABLE t1 (
c VARCHAR(10)
) CHARACTER SET ="latin1";
INSERT INTO t1 VALUES ("æøå");
SELECT * FROM t1; # 'æøå'
ALTER TABLE t1 CHARACTER SET = "utf8";
SELECT * FROM t1; # 'æøå'
DROP TEMPORARY TABLE t1;
EDYCJA:I nie ma znaków latin-1, które nie mogą być przechowywane jako utf-8, więc nie powinieneś stracić danych