Mysql服务器不支持4字节编码的utf8字符
我在运行从Sql server到MySql db的数据传输组件时收到一个服务器错误。 错误消息如下所示:Mysql服务器不支持4字节编码的utf8字符,mysql,utf-8,character,utf8mb4,astral-plane,Mysql,Utf 8,Character,Utf8mb4,Astral Plane,我在运行从Sql server到MySql db的数据传输组件时收到一个服务器错误。 错误消息如下所示: [MySql][ODBC 5.1驱动程序][mysqld-5.0.67-community-nt-log]服务器不支持4字节编码的UTF8字符。 源Sql Server表包含nvarchar列,目标MySql表包含varchar列 有人能解释一下这个问题吗?“4字节编码的UTF-8字符”指的是代码点为0xFFFF的字符,即代码点不在16位之内的字符(在基本多语言平面(BMP)之外)。许多
[MySql][ODBC 5.1驱动程序][mysqld-5.0.67-community-nt-log]服务器不支持4字节编码的UTF8字符。
源Sql Server表包含nvarchar列,目标MySql表包含varchar列
有人能解释一下这个问题吗?“4字节编码的UTF-8字符”指的是代码点为0xFFFF的字符,即代码点不在16位之内的字符(在基本多语言平面(BMP)之外)。许多旧系统不支持BMP以外的字符
BMP之外的字符通常是CJK字符;我不知道你的情况是否如此。:-) 来自:
目前,MySQL支持UTF-8
不包括四字节序列。
(UTF-8编码的旧标准
由RFC 2279给出,其描述
UTF-8序列,从1到
六个字节。RFC3629呈现RFC2279
过时;因此,序列
有五个和六个字节的
用过。)
如果需要MySQL支持4字节UTF-8字符(通常被认为是UTF-8的一部分),则需要使用字符集utf8mb4,而不是utf8。utf8mb4首先在MySQL 5.5.3中得到支持
我也有同样的问题。是否可以在插入mysql数据库之前转换字符 我在远程web服务器上有一个MySQL数据库,没有什么特别的。现在,我使用ODBC驱动程序将远程MySQL数据库与本地MS SQL Server 2008连接起来。这非常有效,但是当我尝试从MSSQL插入字符串值时,会出现错误。使用数字(int)时效果非常好 语法看起来像
INSERT INTO OPENQUERY(
MYSQL,
'SELECT Adresse, Mandant, Matchcode FROM usr_p171552_2.Adressen'
) SELECT Adresse, Mandant, Matchcode FROM Adressen
好的
我在找像这样的东西
INSERT INTO OPENQUERY(
MYSQL,
'SELECT Adresse, Mandant, Matchcode FROM usr_p171552_2.KHKAdressen'
) SELECT Adresse, Mandant, Matchcode FROM KHKAdressen CONVERTTOCHARSET compatiblecharset
我遇到了同样的问题,我可以通过简单地将SQL 2008上链接服务器上一行的
char(1)
列更新为MySQL 5.1 DB来重现这个问题:
update linked_server_name...table_name set status = 'c' where id = 1;
此错误发生在新构建的服务器上。我在另一台机器上有一个类似的设置,在那里同样的代码工作得很好。唯一不同的是MySQL ODBC驱动程序的版本:在新服务器上,它是5.2.2;在旧的(工作)服务器上,它是5.1.8(现在不受支持)
我下载并安装了以前版本的ODBC驱动程序(v5.1.11),问题就解决了。看起来像是一个已知的bug。这里是关于MySQL bug的问题
我在一台客户端计算机进行ODBC连接以将数据拉入excel电子表格时收到此错误消息。其他几台机器可以毫不费力地更新同一个电子表格 经过一番搜索,我什么也没找到,于是开始试验。ODBC连接是使用MySQL unicode驱动程序设置的。我使用ANSI驱动程序重新创建了连接,效果很好
希望这对其他人有所帮助。@user251724:您的链接已过时。找不到该网站。匿名用户建议的编辑评论:MySQL v5.1中似乎不支持字符集“utf8mb4”。+1感谢您的宝贵发现。这是你知道的那些发现之一,但你需要几天才能找到。荣誉司机在这段文字上大吃一惊,“偏心”是字典中对“偏心”一词描述的一部分。它似乎正好在右括号后的点或点后的第一个奇数字符处崩溃。通过直接在底部“advanced”选项卡上的MySQL ODBC驱动程序设置中设置字符集“utf8”来解决此问题。这很有帮助,但如果我使用德国特殊字符,如“ö”或“ü”,字符串会断开。我找不到这个问题的解决方案,所以我编写了一个简单的MS SQL Server函数,用于转换这个字符。