为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
达梦数据库:原始的数据库表meta_name_entry_1 中的str3字段 有条记录存在乱码,我想通过update语句修改字段的值将其变成正常的中文,执行如下:
update iris_v40.meta_name_entry_1 set str3 = '-巴西大豆收割过半,豆粕和豆油怎样影响' where id = 2028733964662870091;
commit;
但执行完后,再次查看数据库表,发现str3字段的值还是乱码,如图所示,这个什么原因呢?麻烦提供一下解决方案
varchar(50)长度不够,utf8每个汉字至少3个字节。
放大varchar(100)或 varchar(50 char)

str3 字段的设置是VC(50)吧?在UTF8编码下,'-巴西大豆收割过半,豆粕和豆油怎样影响' 这个字符串的字节长度是55字节,超过了字段宽度,所以最后部分字符被截断了。
你可以试一下
SELECT LENGTHB('-巴西大豆收割过半,豆粕和豆油怎样影响')