1
我使用latin1_swedish_ci归类中的有价值数据创建旧数据库。我现在试图将其转换为utf8,但我有问题。将数据从latin1转换为utf8后截断数据
我已经尝试了一切,并阅读了我发现的每篇文章。我有几个数据库,其中一些技术对某些数据库是有效的,但不是这一个。
首先,我想这一点,其中不同的数据库
UPDATE tt_news SET
title=convert(cast(convert(title using latin1) as binary) using utf8),
short=convert(cast(convert(short using latin1) as binary) using utf8),
bodytext=convert(cast(convert(bodytext using latin1) as binary) using utf8)
WHERE 1
上工作,它被截断从Balaševiæevi我的数据巴拉
然后我试图用这个
mysqldump -u root -p mydb -c -e --default-character-set=utf8 --single-transaction --skip-set-charset --add-drop-database -B mydb > dump.sql
sed 's/DEFAULT CHARACTER SET latin1/DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci/' <dump.sql | sed 's/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8/' >dump-fixed.sql
mysql -u root -p mydb < dump-fixed.sql
转换数据库
所有内容都转换为utf8_general_ci,并且数据不会被截断,但我仍然遇到问题,因为字符不会显示为应该显示的内容。
这是字处理>Kuæa,这是六角形> 4B75C3A661,这是二进制> 4b75c3a661。该怎么办? – emir
应该有Kuća – emir
Kuæa和4B75C3A661和4b75c3a661是一致的utf8。 (十六进制的大小写不是必然的。)Kuća的Utf8 hex是'4B75C48761'。你提到了“截断” - 这也在链接中讨论。 –