前言:
有一个需求改动,需要把一张表里的所有数据从简体中文改为繁体中文。表的数据也不多,大概500左右。大概有几种思路:
1.手动翻译,然后用Navicat等工具直接文本替换(相同文本多还好,少还是很难受)
2.调公共的翻译接口,再使用ORM保存(翻译接口大多收费)
3.直接使用程序翻译,再使用ORM保存
还是第三种方法更方便一些,我查阅了一下,可以通过VB的方法(.Net core无法使用)和加载一个简繁体转换的dll来实现。
获取转换器
这里用的第二种方法,不过不用去下载那个dll,直接去NuGet里获取就可以得到
使用方法也非常简单,只需要调用转化方法即可
去转化表的数据
这里以繁体字转简体字为例(反之也可以)
这里的ORM框架可以使用任意一种,例子里用的是SqlSugar.
现有一张表
使用DbFirst指定表名直接去创建一个类文件
直接获取集合,修改属性,然后保存执行
SqlSugarClient client = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "server=.;database=XXXX;uid=XXXX;pwd=XXXXXX;",
DbType = DbType.SqlServer,
IsAutoCloseConnection = true
});
List<Sample> samples = client.Queryable<Sample>().ToList();
samples.ForEach(item=> {
item.col1 = ChineseConverter.Convert(item.col1, ChineseConversionDirection.TraditionalToSimplified);
item.col2 = ChineseConverter.Convert(item.col2, ChineseConversionDirection.TraditionalToSimplified);
item.col3 = ChineseConverter.Convert(item.col3, ChineseConversionDirection.TraditionalToSimplified);
});
client.Updateable<Sample>(samples).WhereColumns(it => new {
it.Id }).ExecuteCommand();
client.Close();
查看数据库:
字段被改成了简体,但是因为数据库的字符集设置错误造成了一些乱码(并不是程序的问题)。