/// <summary> /// utils call sql stmt "set names ..." /// </summary> /// <param name="conn"></param> /// <param name="charsets"></param> public static void SetNames(this MySqlConnection conn, MySqlCharacterSetName charsets) { //utils string charsetNames = MySqlSetNamesUtils.GetCharacterSetName(charsets); if (charsetNames != null) { MySqlCommand cmd = new MySqlCommand("set names " + charsetNames, conn); cmd.ExecuteNonQuery(); } }
public static string GetCharacterSetName(MySqlCharacterSetName charset) { //see more https://dev.mysql.com/doc/refman/8.0/en/charset-connection.html#charset-connection-system-variables //SELECT CHARACTER_SET_NAME, COLLATION_NAME, ID // FROM INFORMATION_SCHEMA.COLLATIONS // WHERE IS_DEFAULT = 'yes' //ORDER BY ID; //big5 big5_chinese_ci 1 //dec8 dec8_swedish_ci 3 //cp850 cp850_general_ci 4 //hp8 hp8_english_ci 6 //koi8r koi8r_general_ci 7 //latin1 latin1_swedish_ci 8 //latin2 latin2_general_ci 9 //swe7 swe7_swedish_ci 10 //ascii ascii_general_ci 11 //ujis ujis_japanese_ci 12 //sjis sjis_japanese_ci 13 //hebrew hebrew_general_ci 16 //tis620 tis620_thai_ci 18 //euckr euckr_korean_ci 19 //koi8u koi8u_general_ci 22 //gb2312 gb2312_chinese_ci 24 //greek greek_general_ci 25 //cp1250 cp1250_general_ci 26 //gbk gbk_chinese_ci 28 //latin5 latin5_turkish_ci 30 //armscii8 armscii8_general_ci 32 //utf8 utf8_general_ci 33 //ucs2 ucs2_general_ci 35 //cp866 cp866_general_ci 36 //keybcs2 keybcs2_general_ci 37 //macce macce_general_ci 38 //macroman macroman_general_ci 39 //cp852 cp852_general_ci 40 //latin7 latin7_general_ci 41 //utf8mb4 utf8mb4_general_ci 45 //cp1251 cp1251_general_ci 51 //utf16 utf16_general_ci 54 //utf16le utf16le_general_ci 56 //cp1256 cp1256_general_ci 57 //cp1257 cp1257_general_ci 59 //utf32 utf32_general_ci 60 //binary binary 63 //geostd8 geostd8_general_ci 92 //cp932 cp932_japanese_ci 95 //eucjpms eucjpms_japanese_ci 97 //gb18030 switch (charset) { //TODO add more support here default: return(null); case MySqlCharacterSetName.Latin1: return("latin1"); case MySqlCharacterSetName.Latin2: return("latin2"); case MySqlCharacterSetName.Ascii: return("ascii"); case MySqlCharacterSetName.Tis620: return("tis620"); case MySqlCharacterSetName.Utf8: return("utf8"); } }