C#存储字符串(生僻字),SQL Server数据库变成了问号?

例子:程序中存储 李宛𥖄 ,数据库保存变成了 李宛?,𥖄直接变成了?号

原因:数据库存储类型错了

解决方法:

1、把类型改成 nvarchar

2、c#程序的数据模型中 在 Context.cs中找到相应的数据表,把相应字段的 .IsUnicode(false)删除

modelBuilder.Entity<User>(entity =>
            {
                entity.Property(e => e.Name)
                    .IsRequired()
                    .HasMaxLength(20)
                    //.IsUnicode(false)
                    .HasDefaultValueSql("((0))");
            });

关于数据库的存储类型可以参考以下文章:

SQL 中 char、nchar、varchar、nvarchar 的区别

posted @ 2021-05-10 14:40  清和时光  阅读(1040)  评论(0编辑  收藏  举报