获取 MariaDB 中可用的字符集的 2 种方法

发布于

如果您需要查找 MariaDB 安装中可用的字符集,请查看以下两种方法。

声明SHOW CHARACTER SET

语句是返回 MariaDB 中可用的所有字符集的快速简便方法。您可以单独使用它来返回所有排序规则,或使用 aand/orclause 过滤结果。SHOW CHARACTER SETLIKEWHERE

例:

SHOW CHARACTER SET LIKE 'latin%';

结果:

+———+—————————–+——————-+——–+ | Charset | Description | Default collation | Maxlen | +———+—————————–+——————-+——–+ | latin1 | cp1252 West European | latin1_swedish_ci | 1 | | latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 | | latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 | | latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 | +———+—————————–+——————-+——–+

在本例中,我将结果缩小到仅以开头的字符集。latin

请注意,我们可以在文本之后立即包含子句。当我们这样做时,它会指示要匹配的排序规则名称。LIKE``SHOW CHARACTER SET

这是另一个示例,其中我同时使用子句和子句,以及运算符:WHERE``LIKE``OR

SHOW CHARACTER SET 
WHERE Maxlen LIKE '3'
OR Description LIKE '%Japanese%';

结果:

+———+—————————+———————+——–+ | Charset | Description | Default collation | Maxlen | +———+—————————+———————+——–+ | ujis | EUC-JP Japanese | ujis_japanese_ci | 3 | | sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 | | utf8 | UTF-8 Unicode | utf8_general_ci | 3 | | cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 | | eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 | +———+—————————+———————+——–+

该表information_schema.CHARACTER_SETS

该表包含 MariaDB 中支持的字符集的完整列表。这是返回的相同列表。information_schema.CHARACTER_SETS``SHOW CHARACTER_SETS

因此,我们可以查询此表以返回我们要返回的字符集。我们还可以将列缩小到我们感兴趣的列。

例:

SELECT * 
FROM information_schema.CHARACTER_SETS
WHERE CHARACTER_SET_NAME LIKE 'utf%'
AND MAXLEN = '4';

结果:

+——————–+———————-+——————+——–+ | CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION | MAXLEN | +——————–+———————-+——————+——–+ | utf8mb4 | utf8mb4_general_ci | UTF-8 Unicode | 4 | | utf16 | utf16_general_ci | UTF-16 Unicode | 4 | | utf16le | utf16le_general_ci | UTF-16LE Unicode | 4 | | utf32 | utf32_general_ci | UTF-32 Unicode | 4 | +——————–+———————-+——————+——–+

如您所见,它返回的列与语句返回的列相同。SHOW CHARACTER SETS

鉴于这使用标准的SQLSELECT语句,我们可以通过多种方式自定义我们的结果。我们还可以减少返回的列,将表与其他表联接等。

下面是减少返回的列的示例:

SELECT 
    CHARACTER_SET_NAME,
    DESCRIPTION
FROM information_schema.CHARACTER_SETS
WHERE CHARACTER_SET_NAME LIKE 'utf%'
AND MAXLEN = '4';

结果:

+——————–+——————+ | CHARACTER_SET_NAME | DESCRIPTION | +——————–+——————+ | utf8mb4 | UTF-8 Unicode | | utf16 | UTF-16 Unicode | | utf16le | UTF-16LE Unicode | | utf32 | UTF-32 Unicode | +——————–+——————+