MySQL 表与字段编码格式报错

一、数据库,表,字段编码格式都为latin1(iso-8859-1) 。当数据保存到数据库后,中文显示乱码。

解决办法:

1.在访问数据库连接串中添加编码格式:

<add key="MySqlConnectionString" value="Server=127.0.0.1;Port=3306;Uid=ttt;Pwd=ttt;Database=test_db;innercharacterset=gb2312;charset=gb2312" />

获取出来的中文信息没有问题。

注意:使用gb2312编码添加的中文信息,读取时也要使用相同编码格式,也就是存取的编码格式要一致;否则获取出来为乱码。

二、若获取的字符串为Latin1编码,在C#中可以做如下转换:

/// <summary>
/// Latin1(iso-8859-1) 转 gb2312 中文
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Latin1ToUtf8( string str) {
//这里的 gb2312 取决于 mysql连接字符串中设定的字符编码。
return Encoding.GetEncoding("gb2312").GetString(Encoding.GetEncoding("ISO-8859-1").GetBytes(str));
}

时间: 2025-02-01 19:58:41

MySQL 表与字段编码格式报错的相关文章

MySql数据库执行insert时候报错:Column count doesn&#39;t match value count at row 1

遇到这个问题之后,第一反应就是前后列数不等造成的,但是我检查SQL之后,发现列数是相同得,但是插入还是有问题,然后又写了简单得SQL只插入不为空得字段,执行还是报这个错,最后请教了高人,指点之后,大概是因为当前插入得表被锁住了,然后执行下面得SQL后,之前得SQL就可以正常插入了 LOCK TABLES `system_function_info` WRITE;  UNLOCK TABLES; MySql数据库执行insert时候报错:Column count doesn't match val

【Mysql】存储emoji表情报错(Incorrect string value: &#39;\xF0\x9F\x98\x82\xF0\x9F...&#39;)的解决方案

普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战.避免 emoji 表情符号带来的问题.涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,这必须要作为移动互联网行业的一个技术选型的要点 Mysql 版本的限制,Mysql 5.5.3之前的版本,支持的utf8为3字节的,Mysql 5.5.3之后的版本支持utf8mb4 修改mysql的配置文件,windows下的为my

客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案

最近在制作一个安装包,需要安装的时候执行mysql脚本儿,做了一个批处理,但是发现总是执行到 插入中文的时候报错,或者插入中文是乱码. 网上查了好多资料,说是把编码改成GBK什么的,终究还是不成功. 最后经过多次测试,现把解决方案分享给大家. 第一步:打开mysql中的配置文件,my.ini,看一看配置文件中 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 看是不是这样配置的.因为utf8 是国际通用的,

升级 MySQL 至 5.5,报错 [ERROR] Plugin &#39;InnoDB&#39; init function returned error

MySQL 从 5.5 升级到 5.6,启动时报错: [ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. [ERROR] Unknown/unsupported storage engine: InnoDB [ERROR] Aborting 原因:主要是没有正常关闭 mysqld 服务的情况下,对数据库参数进行改

编译安装 mysql 5.5,运行 cmake报错Curses library not found

是因为 curses库没有安装,执行下面的语句即可 yum -y install ncurses-devel 如果上述命令的结果是no package,则使用下面的命令安装 apt-get install libncurses5-dev 再删除一下CMAKE的缓存配置文件 rm CMakeCache.txt 编译安装 mysql 5.5,运行 cmake报错Curses library not found

mysql:执行LOAD DATA LOCAL 报错

mysql:执行LOAD DATA LOCAL 报错. 我使用navicat for mysql 连接 mysql服务器执行local 可以正常执行 . show VARIABLES like  '%local%infile%'结果如下:+---------------+-------+| Variable_name | Value |+---------------+-------+| local_infile  | ON    | +---------------+-------+1 row

native 链接 mysql 8.0以上版本 报错2059

MySQL版本是8.0.4  由于新版本的MySQL新特性导致的. mysql> select Host,User,plugin from mysql.user; +-----------+------------------+-----------------------+ | Host | User | plugin | +-----------+------------------+-----------------------+ | localhost | mysql.infoschem

MySQL 表的字段,有几种类型?

MySQL 表的字段,数据类型: 字段的数据类型 说明 int varchar 原文地址:https://www.cnblogs.com/cag2050/p/10304542.html

给表追加主键-----报错ORA-02437: 无法验证 (DENGCHAO.TEST) - 违反主键

由于 这次 项目 做了 数据库 迁移(从 mysql 转到oracle  用的是navicat) 的工具  所以导致很多主键都丢失了 导致数据库很多 数据的id重复  导致系统修改一条数据的时候 出现很多值相同  郁闷了大半天 然后 打算在plsql中 给现有的某张表  追加主键 教科书形式 如下 /* 1.创建表的同时创建主键约束 (1)无命名 create table student (  studentid int primary key not null,  studentname va