`
bayaci
  • 浏览: 277079 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

data too long for column 'Auser' at row 1

阅读更多

mantis bug管理系统的二次asp.net 接口开发的时候,碰到编码的问题,如上述标题。

此系统的功能比较好,开源的php+myql.

mysql 的 默认设置

file:my.ini

[mysql]

default-character-set=latin1

[mysqld]

default-character-set=latin1

mysql 数据库的编码细节查询都是latin1编码。

mysql character

Mantis 系统的Mysql数据库链接
数据库编码方式:latin1
当前项目文档的编码方式: utf8

对中文字符串的更新操作和查询操作需要编码格式转换
转换方式:Formarter.GetEncodeToLatin|Formarter.GetEncodeFromLatin

更新sql语句之前使用set names latin1;
例如:
插入数据
sql = "set names latin1;insert into tableName( col1 ) values( '?col1')"
MySqlCommand comm = new MySqlCommand(sql, conn);
MySqlParameter pcol1 = new MySqlParameter("?col1", MySqlDbType.VarChar);
//编码转换
pcol1.Value = Formarter.GetEncodeToLatin(col1);
comm.Parameters.Add(pcol1);

//查询数据
sql = "set names latin1;select realName from mantis_user_table where id=" + reporterUserId;
comm = new MySqlCommand(sql, conn);
dr = comm.ExecuteReader();
if (dr.Read())
{
reporterRealName = dr["realName"].ToString();
//编码转换
reporterRealName = Formarter.GetEncodeFromLatin(reporterRealName);
}
dr.Close();

publicstaticstringGetEncodeToLatin(stringsrc)
...{
returnSystem.Text.Encoding.GetEncoding("latin1").GetString(System.Text.Encoding.Default.GetBytes(src));
}



publicstaticstringGetEncodeFromLatin(stringsrc)
...{
returnSystem.Text.Encoding.Default.GetString(System.Text.Encoding.GetEncoding("latin1").GetBytes(src));


}

页面的编码也要统一,尽可能使用System.Text.Encoding.Default获取默认的编码方式,而不是utf8方式

在数据库中编码改变时,sql语句的set names latin1也要相应的变化才能正常录入中文

分享到:
评论

相关推荐

    ERROR 1406 : Data too long for column 解决办法

    在MySQL数据库操作中,当你尝试插入或更新一行数据时,如果某个字段的值超过了该字段定义的最大长度,系统会抛出“ERROR 1406 : Data too long for column”的错误。这个错误提示非常直接,意味着你试图输入的数据在...

    MySql写入中文错误解决

    但是,当我们尝试导入中文字符时,总是报错“Data too long for column XX at row n”,让人很头疼。下面我们来详细解释这个问题和解决方案: 问题描述 在 MySQL 中,当我们尝试导入中文字符时,总是报错“Data ...

    Value too large for defined data type 解决办法

    ### "Value too large for defined data type" 解决办法 在Linux环境下进行文件操作时,可能会遇到一个名为“Value too large for defined data type”的错误。这一问题通常发生在使用`ls`或`find`命令来查看大于2...

    mysql5.0乱码的解决实例

    "data too long for column"错误提示则表明尝试存储的数据超过了列的最大长度,这与字符集编码有关,也可能导致乱码。下面我们将深入探讨如何识别和解决这些问题。 首先,我们要理解MySQL中的字符集。字符集定义了...

    网页制作作业

    1. HTML基础:HTML(HyperText Markup Language)是网页内容的基本结构语言,用于定义网页的元素和结构。在Dreamweaver中,可以直接通过可视化编辑器插入HTML标签,如标题(h1-h6)、段落(p)、链接(a)、图像...

    Advanced Analytics with Spark: Patterns for Learning from Data at Scale

    Advanced Analytics with Spark: Patterns for Learning from Data at Scale by Sandy Ryza English | 12 Jun. 2017 | ASIN: B072KFWZ8S | 281 Pages | AZW3 | 1.81 MB In the second edition of this practical ...

    Range Loss for Deep Face Recognition with Long-Tailed Training Data(商汤,论文阅读ppt)

    Range Loss for Deep Face Recognition with Long-Tailed Training Data,ICCV 2017,商汤科技 本文的贡献: - 研究长尾分布对人脸 CNNs 模型训练的影响,并想办法缓解 - 开发出新loss —— Range loss ...

    Mastering Java for Data Science

    Right now Alexey works as a data scientist at Searchmetrics, wherein his day-to-day job he actively uses Java and Python for data cleaning, data analysis, and modeling. His areas of expertise are ...

    MySql.Data.dll 6.4.4 for .net 4.0

    MySql.Data.dll 6.4.4 for .net 4.0

    An_Analytic_Data_Engine_for_Visualization_in_Tableau_1.pdf

    on column-oriented stores, we have developed a new specialized analytic data engine tightly-coupled with the Tableau data visualization system. The Tableau Data Engine ships as an integral part of ...

Global site tag (gtag.js) - Google Analytics