项目的解决方案中引用的有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. javascript之DOM(二Document对象)

    javascript通过Document类型来表示文档.在浏览器中document是HTMLDocument对象(继承自Document)的一个实例,表示整个html页面.而且在浏览器中documen ...

  2. Comet OJ - Contest #10 C.鱼跃龙门

    传送门 题意: 求最小的\(x\),满足\(\frac{x(x+1)}{2}\% n=0,n\leq 10^{12}\). 多组数据,\(T\leq 100\). 思路: 直接考虑模运算似乎涉及到二次 ...

  3. 使用pipenv管理虚拟环境

    使用pipenv管理虚拟环境 安装 pip install pipenv 命令介绍 pipenv --help Usage: pipenv [OPTIONS] COMMAND [ARGS]... Op ...

  4. mysql解析binlog日志

    binlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句.语句以“事件”的形式保存,它描述数据更改.因为有了数据更新的binlog,所以可以用于 ...

  5. windows命令行模式打开目录

    cmd命令行里面,打开当前目录方式如下: explorer .

  6. Linux 命令 mv

    mv 命令 --no-target-directory 参数确保对目录进行重命名而不是移动 https://www.gnu.org/software/coreutils/manual/html_nod ...

  7. swiper使用总结-坑点汇总

    1.开发中遇到个坑,ScrollableTabView(选项卡)+swiper(轮播图)在安卓下,初始化的第一页不会渲染,需要在ScrollableTabView挂载完毕后再渲染swiper. 解决方 ...

  8. [RN] React Native 权限申请 react-native-permissions

    React Native 权限申请 react-native-permissions 一.安装 npm i -S react-native-permissions link: react-native ...

  9. 洛谷 P4427

    传送门 洛谷P4427 题意: 给你一个数,然后让你求这两个数之间的点的深度的k次方和. #思路: 很容易想到lca.因为lca可以说是求树上两个点的距离的好方法.而且lca还能遍历每一个点. 然后我 ...

  10. 填坑 bzoj3337

    算是个板子题吧,就是不知道啥时候能写出来. #include<cstring> #include<iostream> #include<cctype> #inclu ...