将UTF-8数据放入latin1数据库列时会发生什么?

时间:2012-05-05 09:17:18

标签: php mysql utf-8 character-encoding latin1

我正在获取一些以UTF-8编码的数据,这些数据将是西班牙语。我需要将其放入的数据库列目前正在使用latin1字符集。

如果我将UTF-8数据放入这些列会怎样?我会丢失任何正确的数据吗? 或者我应该使用php函数mb_convert_encoding转换编码?

1 个答案:

答案 0 :(得分:3)

每个可能的字节序列在latin1中都有效,因此您可以将UTF-8编码的字符串放入您的列中,并且不会抱怨任何内容。当您从数据库中提取数据时,字节将与它们进入时的字节相同,因此如果客户端知道这些字节是UTF-8编码,您将获得原始数据。

但是,你真的不应该这样做:为什么不将列数据类型更改为UTF-8?

ALTER TABLE my_table MODIFY my_column TEXT CHARACTER SET utf8;