映射 MySQL 和 SQL Server 字符集 (MySQLToSQL)

可以为 MySQL 字符数据类型、表达式和文本指定字符集 (Charset)。

字符集映射

字符集映射是为每个 MySQL 字符集定义的,并在字符数据类型转换期间使用。 它指定如何转换特定字符集的字符串数据类型:

  • 转换为国家 SQL Server 字符类型 (NCHAR/NVARCHAR),或

  • 转换为常规 SQL Server 字符类型 (CHAR/VARCHAR)

  1. 国家目标数据库字符数据类型为:

    1. nchar

    2. nvarchar

  2. 常规目标数据库字符数据类型为:

    1. char

    2. varchar

  3. 类型映射仅允许映射到国家字符数据类型。 根据类型映射转换 MySQL 字符数据类型后,将应用字符集映射。

注意

可以在元数据对象资源管理器的每个节点级别定义字符集映射,并表示从 MySQL 读取的所有字符集。

不同节点级别的字符集映射

字符集映射在不同节点级别有所不同,即:

  1. 在根元数据节点级别上

  2. 在数据库、类别和对象节点级别上

注意

不考虑不同节点级别的映射,所选用于编辑 Charset 映射的选项卡包含三个按钮。

它们是:

  1. 应用:仅当编辑字符集映射且尚未保存时,才应用用户所做的更改。
  2. 取消:取消用户所做的更改。 编辑字符集映射但未保存时,将启用该按钮。
  3. 重置为默认值:将所有映射重置为默认值。
  1. 在根元数据节点级别上:字符集映射网格包含字符集网格,其中包含每个字符集的单独列。 网格列包括:

    1. 名为“字符集名”的网格的第一列包含字符集名。

    2. 名为“字符集说明”的第二列包含字符集说明。

    3. 第三列标题为“目标字符集类型”,包含特定字符集的映射设置。 此列的值包括:

      • CHAR/VARCHAR

      • NCHAR/NVARCHAR

    重要

    特定字符集的默认值在 CHAR/VARCHAR 或 NCHAR/NVARCHAR 之后具有前缀“(default)”。

    下面提供了 MySQL 数据库与根元数据节点级别的目标数据库之间的字符集映射:

    字符集名称 字符集说明 目标字符集类型(默认)
    big5 Big5 繁体中文 NCHAR/NVARCHAR(默认)
    dec8 DEC 西欧 CHAR/VARCHAR(默认)
    cp850 DOS 西欧 CHAR/VARCHAR(默认)
    hp8 HP 西欧 CHAR/VARCHAR(默认)
    koi8r KOI8-R Relcom 俄语 CHAR/VARCHAR(默认)
    拉丁语 1 cp1252 西欧 CHAR/VARCHAR(默认)
    latin2 ISO 8859-2 中欧 CHAR/VARCHAR(默认)
    swe7 7 位瑞典 CHAR/VARCHAR(默认)
    ascii US ASCII CHAR/VARCHAR(默认)
    ujis EUC-JP 日语 NCHAR/NVARCHAR(默认)
    sjis Shift-JIS 日语 NCHAR/NVARCHAR(默认)
    希伯来语 ISO 8859-8 希伯来语 CHAR/VARCHAR(默认)
    tis620 TIS620 泰文 CHAR/VARCHAR(默认)
    euckr EUC-KR 韩语 NCHAR/NVARCHAR(默认)
    koi8u KOI8-U 乌克兰语 CHAR/VARCHAR(默认)
    gb2312 GB2312 简体中文 NCHAR/NVARCHAR(默认)
    希腊 ISO 8859-7 希腊文 CHAR/VARCHAR(默认)
    cp 1250 Windows 中欧 CHAR/VARCHAR(默认)
    gbk GBK 简体中文 NCHAR/NVARCHAR(默认)
    latin5 ISO 8859-9 土耳其 CHAR/VARCHAR(默认)
    armscii8 ARMCII-8 亚美尼亚语 CHAR/VARCHAR(默认)
    utf8 UTF-8 Unicode NCHAR/NVARCHAR(默认)
    ucs2 UCS-2 Unicode NCHAR/NVARCHAR(默认)
    cp866 DOS 俄语 CHAR/VARCHAR(默认)
    keybcs2 DOS 卡梅尼基捷克斯洛伐克语 CHAR/VARCHAR(默认)
    macce Mac 中欧 CHAR/VARCHAR(默认)
    macroman Mac 西欧 CHAR/VARCHAR(默认)
    cp852 DOS 中欧 CHAR/VARCHAR(默认)
    latin7 ISO 8859-13 波罗的海 CHAR/VARCHAR(默认)
    cp 1251 Windows Cyrillic CHAR/VARCHAR(默认)
    cp 1256 Windows 阿拉伯语 CHAR/VARCHAR(默认)
    cp 1257 Windows 波罗的海 CHAR/VARCHAR(默认)
    binary 二进制伪字符集 CHAR/VARCHAR(默认)
    geostd8 GEOSTD8 格鲁吉亚语 CHAR/VARCHAR(默认)
    cp932 适用于 Windows 的 SJIS 日语 NCHAR/NVARCHAR(默认)
    eucjpms 适用于 Windows 的 UJIS 日语 NCHAR/NVARCHAR(默认)
  2. 在数据库、类别或对象节点级别上:在数据库、类别或对象节点级别上,字符集映射网格包含的行与根元数据节点级别上的行相同,即:

    1. 名为“字符集名”的网格的第一列包含字符集名。

    2. 标题为字符集说明的第二列包含字符集说明。

    3. 唯一区别是网格第三列中的值。 第三列标题为“目标数据类型”,包含特定字符集的映射设置。 列的值包括:

      • 继承(CHAR/VARCHAR 或 NCHAR/NVARCHAR)

      • CHAR/VARCHAR

      • NCHAR/NVARCHAR

重要

  • 在 MySQL 数据库与数据库、类别和对象节点级别上的目标数据库之间的字符集映射中,列“目标数据类型”的根目录以外的每个级别的特定字符集的默认值应为“继承”。
  • 在网格中,“继承”的值后缀为“(CHAR/VARCHAR)”或“(NCHAR/NVARCHAR)”,具体取决于此特定字符集从父级继承的值。