【问题标题】:Save Emoticon in SQL Server database C#在 SQL Server 数据库中保存表情符号 C#
【发布时间】:2015-07-20 07:01:48
【问题描述】:

我正在用 Asp.Net 编写一个 Web 应用程序。我有一个文本列,用户可以在其中输入产品描述。

它保存正确,但是如果我在手机输入描述时使用表情符号,它会在数据库中保存为??

如何正确保存并在下次显示给用户输入的内容?

我尝试了以下解决方案,但没有结果

byte[] bytes = Encoding.Default.GetBytes(myString);
myString = Encoding.UTF8.GetString(bytes);

我猜是编码问题。

有什么帮助吗?

【问题讨论】:

  • 表列的数据类型是什么?
  • 是否正确保存?检查表中的数据还是“??”在表中?
  • 请澄清您的意思是“表情符号”(使用普通标点符号)还是“表情符号”(en.wikipedia.org/wiki/Emoji
  • 您在哪里看到它“另存为??”?通过 Management Studio 还是当您将存储的值读回 .Net 代码时?另请说明您如何存储/检索值。
  • @utility.. 只是??

标签: c# asp.net sql-server


【解决方案1】:

为了存储 Sql Server 不支持的文本,你的表应该支持 unichar。

在 Table 中创建列并确保其数据类型类似于 nvarchar

现在您可以在 Sql Server 数据库中存储表情符号和不同语言的字体。

 @icontext nvarchar(MAX)

cmd.Parameters.Add("@icontext", SqlDbType.NVarChar);

表情符号无需以字节为单位存储:)

编辑 1:

注意:

在 SQL Server 中处理 Unicode 字符串常量时,您必须在所有 Unicode 字符串前面加上一个大写字母 N,如 SQL Server 联机丛书主题“使用 Unicode 数据”中所述。 “N”前缀代表 SQL-92 标准中的国家语言,并且必须是大写的。如果您不使用 N 作为 Unicode 字符串常量的前缀,SQL Server 将在使用该字符串之前将其转换为当前数据库的非 Unicode 代码页。

【讨论】:

  • 现在它会保存方块而不是笑脸:-)
  • 你能帮我更多吗?
  • 所以现在您可以保存和检索表情符号了..对吗?
  • 我仍然无法保存和检索。
  • 你想保存这个 - :) ..确定吗?
猜你喜欢
  • 2016-08-13
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 2019-12-08
  • 2021-01-09
  • 2011-05-02
  • 2015-08-15
相关资源
最近更新 更多