set charset before connect (#382)

This commit is contained in:
Inada Naoki
2019-08-11 11:23:40 +09:00
committed by GitHub
parent 5a40d5772e
commit b400acddd0
2 changed files with 10 additions and 5 deletions

View File

@ -397,7 +397,7 @@ _mysql_ConnectionObject_Initialize(
"read_default_file", "read_default_group",
"client_flag", "ssl",
"local_infile",
"read_timeout", "write_timeout",
"read_timeout", "write_timeout", "charset",
NULL } ;
int connect_timeout = 0;
int read_timeout = 0;
@ -405,13 +405,14 @@ _mysql_ConnectionObject_Initialize(
int compress = -1, named_pipe = -1, local_infile = -1;
char *init_command=NULL,
*read_default_file=NULL,
*read_default_group=NULL;
*read_default_group=NULL,
*charset=NULL;
self->converter = NULL;
self->open = 0;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"|ssssisOiiisssiOiii:connect",
"|ssssisOiiisssiOiiis:connect",
kwlist,
&host, &user, &passwd, &db,
&port, &unix_socket, &conv,
@ -422,7 +423,8 @@ _mysql_ConnectionObject_Initialize(
&client_flag, &ssl,
&local_infile,
&read_timeout,
&write_timeout
&write_timeout,
&charset
))
return -1;
@ -486,6 +488,9 @@ _mysql_ConnectionObject_Initialize(
if (ssl) {
mysql_ssl_set(&(self->connection), key, cert, ca, capath, cipher);
}
if (charset) {
mysql_options(&(self->connection), MYSQL_SET_CHARSET_NAME, charset);
}
conn = mysql_real_connect(&(self->connection), host, user, passwd, db,
port, unix_socket, client_flag);

View File

@ -140,7 +140,7 @@ class Connection(_mysql.connection):
kwargs2['conv'] = conv2
cursorclass = kwargs2.pop('cursorclass', self.default_cursor)
charset = kwargs2.pop('charset', '')
charset = kwargs2.get('charset', '')
if charset or not PY2:
use_unicode = True