将UTF8字符串保存到SQL Server

本文关键字:SQL Server 保存 UTF8 字符串 | 更新日期: 2023-09-27 18:25:28

我在UTF8中有一个字符串,比如:

Thermal Oxide: 0 Å to 40 μm

我想把它保存在SQL Server中。

当我把它保存在数据类型ntext/narchar中时,它的保存方式如下:

Thermal Oxide: 0 ? to 40 ?m

我能做什么?

将UTF8字符串保存到SQL Server

在带引号的字符串前面加上N:

INSERT INTO someTable (myField) VALUES (N'Thermal Oxide: 0 Å to 40 μm')

我在UTF8中有一个字符串,类似于:

事实上,不,你没有-你有一个unicode字符串。然而,UTF8仅适用于它的编码方式,即存储。如果你的意思是你想储存它,好吧;简单地说:确保存储它的列是nvarchar(somelen)(或类似的列),并且使用参数来存储它。如果只使用cmd.Parameters.AddWithValue("paramName", yourString);,那就可以了(对于像insert [tablename] (...fields...) values (..., @foo)等TSQL)。同样,只要列是nvarchar(somelen)或类似列,任何ORM/microORM/其他数据库工具都可以很好地使用它。例如,使用"dapper":

string s = "Thermal Oxide: 0 Å to 40 μm";
connection.Execute("insert [tablename] (colname) values (@s)", new {s});