您的文本已编码为UTF-8,然后错误地重新解码为Mac Roman。
您将无法在数据库内部修复此问题,因为MysqL不知道Mac Roman编码。您可以编写脚本来遍历每个受影响的表的每一行,并通过反转编码/解码周期来固定文本。Python是可能的,具有广泛的编码范围:
>>> print u'é'.encode('macroman').decode('utf-8')
é
>>> print u'√?'.encode('macroman').decode('utf-8')
ö
>>> print u'í'.encode('macroman').decode('utf-8')
í
或者,如果没有不受此问题影响的非ASCII内容,则可以尝试使用MysqLadmin
导出sql转储,然后使用上述脚本或如果您使用文本编辑器(大概是)立即将其全部转换。 (在Mac上为Mac)),将脚本加载为UTF-8,然后将其另存为Mac Roman。最后,使用重新导入转储MysqL < dump.sql
。