连接器和 API 手册  / 第 4 章 MySQL 连接器/NET 开发人员指南  / 4.5 连接器/NET 编程  /  4.5.16 连接器/NET 的字符集注意事项

4.5.16 连接器/NET 的字符集注意事项

将二进制 Blob 视为 UTF8

在引入 4 字节 UTF-8 字符集之前,MySQL 不支持 4 字节 UTF8 序列。这使得表示一些多字节语言(如日语)变得困难。为了尝试缓解这种情况,MySQL Connector/NET 支持一种可以将二进制 blob 视为字符串的模式。

为此,您将'Treat Blobs As UTF8' 连接字符串关键字设置为true。这就是将所有二进制 blob 转换为 UTF8 字符串所需要做的全部工作。要仅转换部分 BLOB 列,您可以使用'BlobAsUTF8IncludePattern''BlobAsUTF8ExcludePattern'关键字。将这些设置为与要分别包含或排除的列名匹配的正则表达式模式。

当正则表达式模式都匹配单个列时,包含模式将在排除模式之前应用。在这种情况下,结果是该列被排除在外。另外,请注意此模式不适用于 BINARYor类型的列,VARBINARY也不适用于非二进制BLOB列。

此模式仅适用于从 MySQL 读取字符串。要将 4 字节 UTF8 字符串插入 blob 列,请使用 .NET Encoding.GetBytes函数将字符串转换为一系列字节。然后,您可以将此字节数组设置为BLOB列的参数。