From 68e3486edb694caac35da9073bebeed57e02ec2a Mon Sep 17 00:00:00 2001 From: Peakkk Date: Mon, 21 Aug 2017 16:19:38 +0800 Subject: [PATCH] new charset definition added When connection to MySQL 8, PyMySQL may raise an exception, such as `KeyError: 255`. To solve the problem, serval new charset definition was added to this file. --- pymysql/charset.py | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/pymysql/charset.py b/pymysql/charset.py index 968376cf..616863f7 100644 --- a/pymysql/charset.py +++ b/pymysql/charset.py @@ -257,6 +257,55 @@ def by_name(self, name): _charsets.add(Charset(245, 'utf8mb4', 'utf8mb4_croatian_ci', '')) _charsets.add(Charset(246, 'utf8mb4', 'utf8mb4_unicode_520_ci', '')) _charsets.add(Charset(247, 'utf8mb4', 'utf8mb4_vietnamese_ci', '')) +# new in mysql 8 +_charsets.add(Charset(248, 'gb18030', 'gb18030_chinese_ci', 'Yes')) +_charsets.add(Charset(249, 'gb18030', 'gb18030_bin', '')) +_charsets.add(Charset(250, 'gb18030', 'gb18030_unicode_520_ci', '')) +_charsets.add(Charset(255, 'utf8mb4', 'utf8mb4_0900_ai_ci', '')) +_charsets.add(Charset(256, 'utf8mb4', 'utf8mb4_de_pb_0900_ai_ci', '')) +_charsets.add(Charset(257, 'utf8mb4', 'utf8mb4_is_0900_ai_ci', '')) +_charsets.add(Charset(258, 'utf8mb4', 'utf8mb4_lv_0900_ai_ci', '')) +_charsets.add(Charset(259, 'utf8mb4', 'utf8mb4_ro_0900_ai_ci', '')) +_charsets.add(Charset(260, 'utf8mb4', 'utf8mb4_sl_0900_ai_ci', '')) +_charsets.add(Charset(261, 'utf8mb4', 'utf8mb4_pl_0900_ai_ci', '')) +_charsets.add(Charset(262, 'utf8mb4', 'utf8mb4_et_0900_ai_ci', '')) +_charsets.add(Charset(263, 'utf8mb4', 'utf8mb4_es_0900_ai_ci', '')) +_charsets.add(Charset(264, 'utf8mb4', 'utf8mb4_sv_0900_ai_ci', '')) +_charsets.add(Charset(265, 'utf8mb4', 'utf8mb4_tr_0900_ai_ci', '')) +_charsets.add(Charset(266, 'utf8mb4', 'utf8mb4_cs_0900_ai_ci', '')) +_charsets.add(Charset(267, 'utf8mb4', 'utf8mb4_da_0900_ai_ci', '')) +_charsets.add(Charset(268, 'utf8mb4', 'utf8mb4_lt_0900_ai_ci', '')) +_charsets.add(Charset(269, 'utf8mb4', 'utf8mb4_sk_0900_ai_ci', '')) +_charsets.add(Charset(270, 'utf8mb4', 'utf8mb4_es_trad_0900_ai_ci', '')) +_charsets.add(Charset(271, 'utf8mb4', 'utf8mb4_la_0900_ai_ci', '')) +_charsets.add(Charset(273, 'utf8mb4', 'utf8mb4_eo_0900_ai_ci', '')) +_charsets.add(Charset(274, 'utf8mb4', 'utf8mb4_hu_0900_ai_ci', '')) +_charsets.add(Charset(275, 'utf8mb4', 'utf8mb4_hr_0900_ai_ci', '')) +_charsets.add(Charset(277, 'utf8mb4', 'utf8mb4_vi_0900_ai_ci', '')) +_charsets.add(Charset(278, 'utf8mb4', 'utf8mb4_0900_as_cs', '')) +_charsets.add(Charset(279, 'utf8mb4', 'utf8mb4_de_pb_0900_as_cs', '')) +_charsets.add(Charset(280, 'utf8mb4', 'utf8mb4_is_0900_as_cs', '')) +_charsets.add(Charset(281, 'utf8mb4', 'utf8mb4_lv_0900_as_cs', '')) +_charsets.add(Charset(282, 'utf8mb4', 'utf8mb4_ro_0900_as_cs', '')) +_charsets.add(Charset(283, 'utf8mb4', 'utf8mb4_sl_0900_as_cs', '')) +_charsets.add(Charset(284, 'utf8mb4', 'utf8mb4_pl_0900_as_cs', '')) +_charsets.add(Charset(285, 'utf8mb4', 'utf8mb4_et_0900_as_cs', '')) +_charsets.add(Charset(286, 'utf8mb4', 'utf8mb4_es_0900_as_cs', '')) +_charsets.add(Charset(287, 'utf8mb4', 'utf8mb4_sv_0900_as_cs', '')) +_charsets.add(Charset(288, 'utf8mb4', 'utf8mb4_tr_0900_as_cs', '')) +_charsets.add(Charset(289, 'utf8mb4', 'utf8mb4_cs_0900_as_cs', '')) +_charsets.add(Charset(290, 'utf8mb4', 'utf8mb4_da_0900_as_cs', '')) +_charsets.add(Charset(291, 'utf8mb4', 'utf8mb4_lt_0900_as_cs', '')) +_charsets.add(Charset(292, 'utf8mb4', 'utf8mb4_sk_0900_as_cs', '')) +_charsets.add(Charset(293, 'utf8mb4', 'utf8mb4_es_trad_0900_as_cs', '')) +_charsets.add(Charset(294, 'utf8mb4', 'utf8mb4_la_0900_as_cs', '')) +_charsets.add(Charset(296, 'utf8mb4', 'utf8mb4_eo_0900_as_cs', '')) +_charsets.add(Charset(297, 'utf8mb4', 'utf8mb4_hu_0900_as_cs', '')) +_charsets.add(Charset(298, 'utf8mb4', 'utf8mb4_hr_0900_as_cs', '')) +_charsets.add(Charset(300, 'utf8mb4', 'utf8mb4_vi_0900_as_cs', '')) +_charsets.add(Charset(303, 'utf8mb4', 'utf8mb4_ja_0900_as_cs', '')) +_charsets.add(Charset(304, 'utf8mb4', 'utf8mb4_ja_0900_as_cs_ks', '')) +_charsets.add(Charset(305, 'utf8mb4', 'utf8mb4_0900_as_ci', '')) charset_by_name = _charsets.by_name