我在Stackoverflow中搜索结果这是我发现但仍有问题:" 要使字段能够存储unicode字符,您必须使用nvarchar类型(或其他类似的ntext,nchar)。
要在数据库中插入unicode字符,您必须使用nvarchar / SqlDbType.NVarChar等参数类型将文本作为unicode发送。
(为了完整性:如果你动态地创建SQL(针对常见建议),你在字符串文字之前放置一个N来使其成为unicode。例如:插入表(名称)值(N' Pavan&#39 ;))"
我的问题是我的代码存储是这样的: String Name = Text1.Text; SqlCommand cmd = new SqlCommand(" Insert into Tablex values(Name)",con); 如果我在名称之前加上N指向另一个需要初始化的字符串,那么我可以做什么帮助
答案 0 :(得分:2)
你担心错误的一层; c#字符串已经与Unicode字符串(以及其他编码)兼容,因为它们存储为UTF-16。您不必担心从c#角度进行编码。
您需要担心数据库上的编码。使用NVarChar作为列类型定义表模式,如果使用任何存储过程,则需要将任何字符串参数定义为NVarChar。请务必使用SqlDbType“NVarChar”绑定任何参数。
此外,请确保SQL Server使用适当的collation。
答案 1 :(得分:0)
好的,所以我发现了它并且它有效: 只有Nvarchar,ntext或nchar才有效 无需进行整理,我们在代码中所要做的就是以下内容: 插入表(名称)值(N' Pavan') 或者在我将textfield放入字符串的情况下: "插入Tablex值(N'" + Mname +"''" + Mp +"'& #39;" + Ln +"','" + Mc +"','" + ML + "')&#34 ;; N'"将下一个输入转换为Utf,以便识别阿拉伯语,感谢大家的帮助