我在UTF8中有一个字符串,如:
Thermal Oxide: 0 Å to 40 μm
我希望将其保存在SQL Server中。
当我将其保存在数据类型ntext / nvarchar中时 - 它会像这样保存:
Thermal Oxide: 0 ? to 40 ?m
我该怎么办?
答案 0 :(得分:12)
在引用的字符串前加N
:
INSERT INTO someTable (myField) VALUES (N'Thermal Oxide: 0 Å to 40 μm')
答案 1 :(得分:3)
我在UTF8中有一个字符串,如:
实际上,不,你没有 - 你有一个unicode字符串。然而,UTF8仅适用于它的编码方式,即存储。如果你的意思是想存储它,那很好;简单地说:确保您存储的列是nvarchar(somelen)
(或类似),并使用参数来存储它。如果您只使用cmd.Parameters.AddWithValue("paramName", yourString);
那就没问题(对于像insert [tablename] (...fields...) values (..., @foo)
这样的TSQL等)。同样,只要列nvarchar(somelen)
或类似,任何ORM /微ORM /其他数据库工具都可以正常工作。例如,使用“dapper”:
string s = "Thermal Oxide: 0 Å to 40 μm";
connection.Execute("insert [tablename] (colname) values (@s)", new {s});