Chapter 6 - Character set information

Find out the available character sets, collations and engines installed on this server's version of MySQL.

Output
Available Storage Engines
EngineSupportCommentTransactionsXASavepoints
PERFORMANCE_SCHEMAYESPerformance SchemaNONONO
CSVYESCSV storage engineNONONO
MyISAMYESMyISAM storage engineNONONO
BLACKHOLEYES/dev/null storage engine (anything you write to it disappears)NONONO
InnoDBDEFAULTPercona-XtraDB, Supports transactions, row-level locking, and foreign keysYESYESYES
partitionNOPartition Storage Engine Helper
MRG_MYISAMYESCollection of identical MyISAM tablesNONONO
ARCHIVEYESArchive storage engineNONONO
MEMORYYESHash based, stored in memory, useful for temporary tablesNONONO
FEDERATEDNOFederated MySQL storage engine
Available Character Sets
CharsetDescriptionDefault collationMaxlen
big5Big5 Traditional Chinesebig5_chinese_ci2
dec8DEC West Europeandec8_swedish_ci1
cp850DOS West Europeancp850_general_ci1
hp8HP West Europeanhp8_english_ci1
koi8rKOI8-R Relcom Russiankoi8r_general_ci1
latin1cp1252 West Europeanlatin1_swedish_ci1
latin2ISO 8859-2 Central Europeanlatin2_general_ci1
swe77bit Swedishswe7_swedish_ci1
asciiUS ASCIIascii_general_ci1
ujisEUC-JP Japaneseujis_japanese_ci3
sjisShift-JIS Japanesesjis_japanese_ci2
hebrewISO 8859-8 Hebrewhebrew_general_ci1
tis620TIS620 Thaitis620_thai_ci1
euckrEUC-KR Koreaneuckr_korean_ci2
koi8uKOI8-U Ukrainiankoi8u_general_ci1
gb2312GB2312 Simplified Chinesegb2312_chinese_ci2
greekISO 8859-7 Greekgreek_general_ci1
cp1250Windows Central Europeancp1250_general_ci1
gbkGBK Simplified Chinesegbk_chinese_ci2
latin5ISO 8859-9 Turkishlatin5_turkish_ci1
armscii8ARMSCII-8 Armenianarmscii8_general_ci1
utf8UTF-8 Unicodeutf8_general_ci3
ucs2UCS-2 Unicodeucs2_general_ci2
cp866DOS Russiancp866_general_ci1
keybcs2DOS Kamenicky Czech-Slovakkeybcs2_general_ci1
macceMac Central Europeanmacce_general_ci1
macromanMac West Europeanmacroman_general_ci1
cp852DOS Central Europeancp852_general_ci1
latin7ISO 8859-13 Balticlatin7_general_ci1
utf8mb4UTF-8 Unicodeutf8mb4_general_ci4
cp1251Windows Cyrilliccp1251_general_ci1
utf16UTF-16 Unicodeutf16_general_ci4
utf16leUTF-16LE Unicodeutf16le_general_ci4
cp1256Windows Arabiccp1256_general_ci1
cp1257Windows Balticcp1257_general_ci1
utf32UTF-32 Unicodeutf32_general_ci4
binaryBinary pseudo charsetbinary1
geostd8GEOSTD8 Georgiangeostd8_general_ci1
cp932SJIS for Windows Japanesecp932_japanese_ci2
eucjpmsUJIS for Windows Japaneseeucjpms_japanese_ci3
gb18030China National Standard GB18030gb18030_chinese_ci4
UTF-8 Collations
CollationCharsetIdDefaultCompiledSortlen
utf8_general_ciutf833YesYes1
utf8_binutf883Yes1
utf8_unicode_ciutf8192Yes8
utf8_icelandic_ciutf8193Yes8
utf8_latvian_ciutf8194Yes8
utf8_romanian_ciutf8195Yes8
utf8_slovenian_ciutf8196Yes8
utf8_polish_ciutf8197Yes8
utf8_estonian_ciutf8198Yes8
utf8_spanish_ciutf8199Yes8
utf8_swedish_ciutf8200Yes8
utf8_turkish_ciutf8201Yes8
utf8_czech_ciutf8202Yes8
utf8_danish_ciutf8203Yes8
utf8_lithuanian_ciutf8204Yes8
utf8_slovak_ciutf8205Yes8
utf8_spanish2_ciutf8206Yes8
utf8_roman_ciutf8207Yes8
utf8_persian_ciutf8208Yes8
utf8_esperanto_ciutf8209Yes8
utf8_hungarian_ciutf8210Yes8
utf8_sinhala_ciutf8211Yes8
utf8_german2_ciutf8212Yes8
utf8_croatian_ciutf8213Yes8
utf8_unicode_520_ciutf8214Yes8
utf8_vietnamese_ciutf8215Yes8
utf8_general_mysql500_ciutf8223Yes1
utf8mb4_general_ciutf8mb445YesYes1
utf8mb4_binutf8mb446Yes1
utf8mb4_unicode_ciutf8mb4224Yes8
utf8mb4_icelandic_ciutf8mb4225Yes8
utf8mb4_latvian_ciutf8mb4226Yes8
utf8mb4_romanian_ciutf8mb4227Yes8
utf8mb4_slovenian_ciutf8mb4228Yes8
utf8mb4_polish_ciutf8mb4229Yes8
utf8mb4_estonian_ciutf8mb4230Yes8
utf8mb4_spanish_ciutf8mb4231Yes8
utf8mb4_swedish_ciutf8mb4232Yes8
utf8mb4_turkish_ciutf8mb4233Yes8
utf8mb4_czech_ciutf8mb4234Yes8
utf8mb4_danish_ciutf8mb4235Yes8
utf8mb4_lithuanian_ciutf8mb4236Yes8
utf8mb4_slovak_ciutf8mb4237Yes8
utf8mb4_spanish2_ciutf8mb4238Yes8
utf8mb4_roman_ciutf8mb4239Yes8
utf8mb4_persian_ciutf8mb4240Yes8
utf8mb4_esperanto_ciutf8mb4241Yes8
utf8mb4_hungarian_ciutf8mb4242Yes8
utf8mb4_sinhala_ciutf8mb4243Yes8
utf8mb4_german2_ciutf8mb4244Yes8
utf8mb4_croatian_ciutf8mb4245Yes8
utf8mb4_unicode_520_ciutf8mb4246Yes8
utf8mb4_vietnamese_ciutf8mb4247Yes8
Source
<?php
require(CONNECT);

// print database table engines
if ($result = mysqli_query($link, "SHOW ENGINES")) {
	// get field information for each column and output as table header
	$finfo = mysqli_fetch_fields($result);
	$output = '<table class="mysql-data"><caption>Available Storage Engines</caption><thead><tr>';
    foreach ($finfo as $val) {
    	$output .= '<th>'.$val->name.'</th>';
    }
    $output .= '</tr></thead><tbody>';
    // get all row data in an array and format in table rows
    while($row = mysqli_fetch_array($result, MYSQLI_NUM))
		{
			$output .= '<tr>';
			for($i=0;$i<count($row);$i++)
			{
				$output .= '<td>'.$row[$i].'</td>';
			}
			$output .= '</tr>';
		}
	$output .= '</tbody></table>';
	echo $output;
    /* free result set */
    mysqli_free_result($result);
}
/* print character set information */
if ($result = mysqli_query($link, "SHOW CHARACTER SET")) {
	// get field information for each column and output as table header
	$finfo = mysqli_fetch_fields($result);
	$output = '<table class="mysql-data"><caption>Available Character Sets</caption><thead><tr>';
    foreach ($finfo as $val) {
    	$output .= '<th>'.$val->name.'</th>';
    }
    $output .= '</tr></thead><tbody>';
    // get all row data in an array and format in table rows
    while($row = mysqli_fetch_array($result, MYSQLI_NUM))
		{
			$output .= '<tr>';
			for($i=0;$i<count($row);$i++)
			{
				$output .= '<td>'.$row[$i].'</td>';
			}
			$output .= '</tr>';
		}
	$output .= '</tbody></table>';
	echo $output;
    /* free result set */
    mysqli_free_result($result);
}
// print all collations for utf8 character set
if ($result = mysqli_query($link, "SHOW COLLATION LIKE 'utf8%'")) {
   	// get field information for each column and output as table header
	$finfo = mysqli_fetch_fields($result);
	$output = '<table class="mysql-data"><caption>UTF-8 Collations</caption><thead><tr>';
    foreach ($finfo as $val) {
    	$output .= '<th>'.$val->name.'</th>';
    }
    $output .= '</tr></thead><tbody>';
    // get all row data in an array and format in table rows
    while($row = mysqli_fetch_array($result, MYSQLI_NUM))
		{
			$output .= '<tr>';
			for($i=0;$i<count($row);$i++)
			{
				$output .= '<td>'.$row[$i].'</td>';
			}
			$output .= '</tr>';
		}
	$output .= '</tbody></table>';
	echo $output;

    /* free result set */
    mysqli_free_result($result);
}
require(DISCONNECT);
?>