项目的解决方案中引用的有mysqlsugar的数据库操作库,在使用插入数据过程中一些特殊的生僻字或表情符号总会提示:

Incorrect string value: '\xF0\x9F...' for column 'name' at row 1

这是由于UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去。

进而提示\x十六进制的字符串信息。

因为myselsugar ,也是对sqlsugar的进一步封装。所以将目光聚焦在sqlsugar上就可以了。

sqlsugar给的解决方案是:

在定义实体时将临时保存特殊字符的变量mapping(映射)sqlsugar中的[SqlSugar.SugarColumn(IsTranscoding =true)] //设置该自段转码 属性

例:

 using System;
using System.Linq;
using SqlSugar; namespace ClearMonitor.Model.Entities
{
[SqlSugar.SugarTable("departmentintro")]
public class DepartmentintroData
{
public int DepartmentId { get; set; }
public string DepartmentNo { get; set; }
public string DepartmentName { get; set; }
/// <summary>
/// 部门简介
/// </summary>
[SqlSugar.SugarColumn(IsTranscoding =true)]
public string DepartmentBlurb { get; set; } }
}
最后是官方论坛的解决方案,也贴在下面了。MySql插入表情方案,感谢支持。如有问题请及时沟通联系。

补充说明:实体特性API

ColumnName  定义数据库表字段的真实名称,当一样的时候可以不定义该特性
IsIgnore   不作数据库操作,true将不会进行查询、添加等操作
IsPrimaryKey  标识是否为主键,更新的时候会根据主键值判段更新哪条,当InitKey为Attribute时一定要加该特性不然找不到主键
IsIdentity  是否为自增长
ColumnDescription  列描述
Length  长度,生成表会用到
IsNullable 是否可空,生成表会用到
OldColumnName  修改列名,生成表会用到
ColumnDataType  自定义生成的数据类型,生成表会用到

关于使用mySqlSugar插入数据异常解决方案的更多相关文章

  1. MySQL插入数据异常

    MySQL插入数据异常 1.错误如下: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:Dupli ...

  2. 使用mybatis向oracle数据库插入数据异常

    遇到了使用mybatis向oracle数据库插入数据异常的问题, 具体的报错如下:org.springframework.jdbc.UncategorizedSQLException: ### Err ...

  3. 关于mysql插入数据异常

    今天创建数据库时,在插入数据时出现了几个问题.(首次在LInux环境下创建数据库) 一个是关于SQL Error [1146] [42S02]: Table 'struts2exec.s_user' ...

  4. node操作mysql插入数据异常,incorrect string value

    产生的原因 我在创建表的时候,并没有设定字符编码,所以,默认的字符编码是 latin1 在我插入数据的时候,我的一个字段name设定的是varchar(20) 其实,这时的编码就是 latin1 所以 ...

  5. android sqlite批量插入数据速度解决方案

    转自 http://hi.baidu.com/hfutonline/blog/item/62b1e4de8bdf4b2e5882dd28.html 最近在做android项目的时候遇到一个问题,应用程 ...

  6. 有反斜杠时候,CakePHP往pgsql插入数据异常

    原始数据:INSERT INTO “public”.”tables” (“table”, “columns”) VALUES (‘table1\’, ‘{“col1″:false,”col2″:tru ...

  7. Java 向Hbase表插入数据异常org.apache.hadoop.hbase.client.HTablePool$PooledHTable cannot be cast to org.apache.client.HTable

    出错代码如下: //1.create HTablePool HTablePool hp=new HTablePool(con, 1000); //2.get HTable from HTablepoo ...

  8. c# sqlbulkcopy批量插入数据

    dt信息中包含数据和表名 public static void SqlBulkInsert(DataTable dt, string connStr) { try { using (var conn ...

  9. c# 数据库批量插入数据SqlBulkCopy 示例

    /// <summary> /// 批量插入数据 /// </summary> public static void SqlBulkInsert(DataTable dt, s ...

随机推荐

  1. Conv2D

    Conv2D keras.layers.convolutional.Conv2D(filters, kernel_size, strides=(1, 1), padding='valid', data ...

  2. AI-图像基础知识-02

    目录 图像坐标系 图像数字化 图像坐标系     在前面的数据标注文章中讲述如何进行标注,而标注后会保留4个坐标点,那么这些坐标点如何表示在图片中的位置?要表示一个点或图形的位置,就需要涉及到坐标系的 ...

  3. properties文件属性值@Value注解为 java entity属性赋值

    一.使用@Value为 java entity类中的非static属性赋值 举个栗子,一目了然 1.1 properties文件 1.2 servlet.xml 文件增加的配置: 1.2.1 serv ...

  4. AMD Ryzen一代、二代CPU一览表

    Ryzen一代(14纳米).二代(12纳米)CPU一览表 http://img30.360buyimg.com/sku/jfs/t1/1134/23/12713/382299/5bd910f9E63b ...

  5. java JSONObject

    JSONObject.has("key")方法首先判断是否含有该key字段,如果不存在该字段,返回false;如果存在此字段,还判断了该字段的value值是否为null,如果val ...

  6. Consul 学习资料

    资料 网址 Consul 入门指南 https://book-consul-guide.vnzmi.com/

  7. python windows下获取路径时有中文处理

    在windows中用os,path.abspath(__file__)时有中文路径时,默认是转成非unicode格式 这会导致,在其它模块使用该路径时,会报 utf8' codec can't dec ...

  8. 每天一道Rust-LeetCode(2019-06-03)

    每天一道Rust-LeetCode(2019-06-02) 有序链表转换二叉搜索树 坚持每天一道题,刷题学习Rust. 原题 题目描述 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜 ...

  9. 谈谈你对arguments的了解

    arguments:函数的实参副本,它是一个类数组. 使用场景:只能在函数内调用,严格模式下不能用. 函数的形参个数:fn.length 函数的实参个数:arguments.length argume ...

  10. java信号量

    维基百科解释的信号量概念如下 信号量(英语:semaphore)又称为信号标,是一个同步对象,用于保持在0至指定最大值之间的一个计数值.当线程完成一次对该semaphore对象的等待(wait)时,该 ...