mysql - 在 MySQL 中将 UTF16 转换为 UTF8

标签 mysql utf-8 utf-16

我尝试执行以下查询

SELECT  Scania.GensetType, Scania.EngineType, Scania.Engine60Hz, Scania.Alternator, Scania.PriceEur
FROM Scania  
LEFT JOIN NordhavnGenset
    ON Scania.GensetType=NordhavnGenset.Alternator 
LEFT JOIN Generator
    ON Scania.Alternator=Generator.Alternator
LEFT JOIN Insulation 
    ON NordhavnGenset.Insulation=Insulation.Insulation
LEFT JOIN Klasse
    ON NordhavnGenset.Class=Klasse.Class
LEFT JOIN AirInletFilter
    ON NordhavnGenset.AirInletFilter=AirInletFilter.AirInletFilter
LEFT JOIN IP
    ON NordhavnGenset.Ip=IP.IP
WHERE (NordhavnGenset.MaxKva='46') and (Generator.Alternator='ECP34-1LN/4') and (Insulation.Insulation='F (90ºC/45ºC)') and (Klasse.Klasse='KRS\r') and (AirInletFilter.AirInletFilter='No') and (IP.IP='IP23');

不过看起来

Scania.Alternator=Generator.Alternator

数据类型分别为text UTF 16和text UTF8。结果,它无法执行。我需要知道应该用于进行此转换的语法

这是我在执行查询时得到的错误信息

#1267 - Illegal mix of collations (utf16_unicode_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='

最佳答案

您可以使用 CONVERT(.. USING ..)将值从一种字符编码转换为另一种字符编码的函数:

Scania.Alternator = CONVERT(Generator.Alternator USING ucs2)

或者,您可以查看为什么列编码不同,并考虑对所有内容使用 utf8 或 ucs2...

关于mysql - 在 MySQL 中将 UTF16 转换为 UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087755/

相关文章:

java - 如何在考虑长度 > 1 的字符时比较字符串的每个字符?

c++ - Windows CMD 无法正确输出 UTF-16

mysql - 如何按用户输入的日期进行选择?

mysql - Logstash:MySQL 到 Elasticsearch(大表)?

mysql - 如何根据数据库值检查所有单选按钮?

mysql在多个表中查找不存在的记录

svn - 如何使用 utf-8 消息文件提交?

python - 什么命令 print unicode 在 python 中转义

java - 文本填充中的JUNK字符,用于HADOOP mapreduce中的外语

c - 如何将 UTF-16 转换为 UTF-32 并在 C 中打印生成的 wchar_t?