gpt4 book ai didi

c# - Sql 数据库中的字符串是问号 C#

转载 作者:行者123 更新时间:2023-11-29 17:23:31 26 4
gpt4 key购买 nike

我试图从数据库向用户字符串发送消息,该字符串是希伯来语语言,代码工作正常,但当其存储到数据时,所有字符都是问号

zx = user photo id its not a hebrew string works perfect .
cap = e.Message.Caption.ToString();
usern = userid in table works perect to.

con.Open();
using (var cmd = new SqlCommand("update Accs2 set PhotoId = '" + zx + "',
PhotoCap= '" + cap + "' where Username like '%" + usern + "%'", con))
{
await cmd.ExecuteNonQueryAsync();
await bot.SendTextMessageAsync(cid, "Your Photo And Caption Saved!", parseMode: ParseMode.Html, replyMarkup: exit);

}
con.Close();

最佳答案

将列的数据类型更改为存储在数据库中的 NVARCHAR,例如:

旧表结构:

CREATE TABLE (
COL_1 VARCHAR(10)
COL_2 VARCHAR(500),
...
COL_N VARCHAR(10)
);

您将消息存储在“COL_2”列中,然后将其更改为 NVARCHAR,如下所示:

CREATE TABLE (
COL_1 VARCHAR(10)
COL_2 NVARCHAR(500),
...
COL_N VARCHAR(10)
);

我猜想,该消息所使用的语言是该列当前字符集不支持的语言。

编辑 - 1:使用示例解决方案更新

这是我的系统的工作集,我还更改了表字符集和排序规则,如下所示,然后它就可以正常工作了。

mysql> create table test_emoji(col1 int, str_with_emoji varchar(200)) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Query OK, 0 rows affected (0.40 sec)

mysql> insert into test_emoji(col1,str_with_emoji) values (1,'dh😜😀😊😃hzhzhzzhjzj 我爱你 ❌');
Query OK, 1 row affected (0.09 sec)

mysql> select * from test_emoji;
+------+---------------------------------------------+
| col1 | str_with_emoji |
+------+---------------------------------------------+
| 1 | dh😜😀😊😃hzhzhzzhjzj 我爱你 ❌ |
+------+---------------------------------------------+
1 row in set (0.00 sec)

EDIT-2:在 SQL Server 中:您必须在实际字符串之外的字符串之前使用“N”前缀,如下所示:

insert into test_emoji(col1,str_with_emoji) values (1,N'dh😜😀😊😃hzhzhzzhjzj 我爱你 ❌');

关于c# - Sql 数据库中的字符串是问号 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com