【发布时间】:2015-06-11 06:37:26
【问题描述】:
我需要将西里尔字符保存在 MSSQL 的 varchar 字段中。 为此,我需要将我的字符串转换为字节的 ansi 表示形式。
例如,如果我将 Notepad++ 中的编码从 Cyrillic 更改为 ANSI,则字符串将从 русский язык 更改为 ðóññêèé ÿçûê。
我在 c# 中找不到这样做的方法,encoding.getbytes 是正确的方法吗?
【问题讨论】:
-
你不能使用 nvarchar 吗?
-
不,该死的遗留应用程序:(
-
您会考虑将数据以 UTF-8 格式存储在 base64 中吗?
-
@Telvan 这将不起作用。从 UTF-16(.NET 内存中的字符串)到 ANSI 可能会截断字符,因此无法可靠地返回。如果您自己编写编码,您必须更新写入和读取数据的每个地方。
-
执行此操作的基本方法是使用西里尔编码转到字节,然后使用 ansi 编码或其他任何返回字符串。在您复制 Notepad++ 所做的工作之前,您可能需要对该方案进行一些试验。此外,在某些情况下也会有损失。