在SQL Server数据库C中保存表情符号#
问题描述:
我正在Asp.Net中编写一个Web应用程序。我有一个文本列,其中用户输入产品的描述。在SQL Server数据库C中保存表情符号#
它正在保存正确,但如果我在使用手机输入描述时使用表情符号,它会被保存为数据库中的??
。
如何正确保存并在下次显示时向用户输入他的内容?
我尝试以下解决方案没有结果
byte[] bytes = Encoding.Default.GetBytes(myString);
myString = Encoding.UTF8.GetString(bytes);
我猜是编码问题。
任何帮助?
答
为了存储Sql Server中不支持的文本,您的表应该具有unichar支持。
创建表中的列并确保它的数据类型为nvarchar
。
现在您可以在Sql Server数据库中存储表情和不同的语言字体。
@icontext nvarchar(MAX)
cmd.Parameters.Add("@icontext", SqlDbType.NVarChar);
无需以字节为单位存储表情:)
编辑1:
注:
当在SQL Server中的Unicode字符串常量你打交道必须在所有Unicode字符串之前以大写字母N开头,如SQL Server联机丛书主题“使用Unicode Da”中所述TA”。 “N”前缀代表SQL-92标准中的国家语言,并且必须是大写字母。如果您不用N前缀Unicode字符串常量,SQL Server会在使用该字符串之前将其转换为当前数据库的非Unicode代码页。
什么是表格列的数据类型? – tharif
它是nvarchar(MAX) –
是正确保存吗?检查表中的数据还是'??'在桌子上? – tharif