有很多方法可以“改变”正在使用的字符集。每个都适用于一种情况,但在其他情况下会使事情变得更糟。
不幸的是,您处于所有情况中最糟糕的情况——数据消失了,取而代之的是“?”。
如果您可以重新加载数据,则使用它来分析情况并确定适当的修复。
由于您要存储中文,因此您必须以 . 结尾CHARACTER SET utf8mb4
,而不仅仅是 utf8。(包括英语、西里尔语和德语。)
如果您希望获得更具体的信息,我需要更多详细信息:SHOW CREATE TABLE
,SELECT HEX(..)
来自第一个链接等。
某些字符集更改需要更改位。使用ä
,例如:
Character set(s) HEX encoding
utf8mb4, utf8 C3A4
cp1250, cp1257, dec8,
latin1, latin2, latin5, latin7 E4
cp850, cp852, keybcs2 84
eucjpms, ujis 8FABA3
gb18030 81308A31
hp8 CC
macce, macroman 8A
swe7 7B
大多数字符集之间的英文字母不会改变。重音字母——混合。
- utf8 是 utf8mb4 的子集
- 大多数“拉丁*”字符集有一些重叠或缺少字符。
- Ascii 不包含任何重音字母,因此转换为它可能会产生“?”。