我的数据库中有一个表,我想像

问题描述 投票:0回答:4
。 MySQL是否有任何功能可以执行此类任务?那是什么?

您可以使用铸造和转换以在不同类型的编码之间切换。请参阅:

Http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html



SELECT column1, CONVERT(column2 USING utf8) FROM my_table WHERE my_condition;
mysql sql utf-8
4个回答

53
投票
使用mySQL
client库
,您应该防止转换回到Connection的默认charset

32
投票
mysql_set_character_set()

[1]

在这种情况下,使用额外的铸件对二进制: SELECT column1, CAST(CONVERT(column2 USING utf8) AS binary) FROM my_table WHERE my_condition;

SELECT语句将转换为UTF-8,但您的客户端库将其转换回(可能不同的)默认连接charset.

我已将Latin1(或DB的Charset)的下一个代码用于UTF8问题:

SELECT column1, CONVERT(CAST(CONVERT(column2 USING LATIN1) AS BINARY) USING UTF8) AS column2 FROM my_table WHERE my_condition

IT从Latin1转换为二进制,然后转换为UTF8,因为直接从Latin1到UTF8可能行不通。

2025-03-17编辑:将MB4添加到UTF8:

14
投票
SELECT column1, CONVERT(CAST(CONVERT(column2 USING LATIN1) AS BINARY) USING UTF8MB4) AS column2 FROM my_table WHERE my_condition


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.