我试图在mysql的表中保存这行字符。
这是字符串值:
@£$¥èéùìòÇØøÅåΔ_ΦΓΛΩΠΨΣΘΞ^ {} \ [〜] |€ÆæßÉ\“#¤%&安培; ''()* +, - / 0123456789:!?;< =>¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà
表中保存的字符串值如下所示:
@£$¥èéùìòÇØøÅå_FG O 10 ST ^ {} [〜] |€ÆæßÉ“#¤%&安培; ''()* +, - / 0123456789:???!;< => ?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà
我已经将数据库字符集从默认值更改为 UTF8MB4 整理 UTF8MB4_GENERAL_CI
这是我使用的查询字符串:
"INSERT INTO Inbox (message) values (@message);";
这是我用来保存上面字符串的MysqlParameter:
mySQLCommand.AddParameter(new MySqlParameter("@message", MySqlDbType.LongText), entity.message, ref parameters);
我注意到并非所有角色都以原始形式保存。
我是否声明了错误的mysqlParameter?还是错过了什么?
我正在使用PhpmyAdmin版本4.5.1。
谢谢! :)
答案 0 :(得分:0)
首先要设置的是数据库的排序规则类型。
整理类型应设置为UTF_8mb4_general_ci
其次,设置表格的字符串或文本列的排序规则类型。
最后,设置连接的字符集。
SERVER=localhost;DATABASE=characters;UID=root;PASSWORD=;Charset=utf8;
请参考我的示例源代码:
string sSQL = @"INSERT INTO characters VALUES(0,@message);";
ArrayList parameter = new ArrayList();
AddParameter(new MySqlParameter("@message", MySqlDbType.String), textBox1.Text, ref parameter);
try
{
var data = mySQLCommand.Instance.ExecuteScalarSQLCommand(sSQL, parameter);
MessageBox.Show("Save!");
}
catch (Exception ex)
{
MessageBox.Show( ex.ToString()
);
}
要添加到表中的字符的示例输入:
点击button1后。在下图中,您可以看到插入操作后字符保留在其原始形式上。
希望这可以帮助您解决问题。
此致
Lou II