matlab-JDBC operations MYSQL database to solve the Chinese garbled

JDBC connection MYSQL database, using MATLAB to read and write Chinese garbled data is due to configuration problems MYSQL itself

Encoding test database is UTF8, the operating system for the Chinese WINDOWS, namely the operating system code is GBK, if not MYSQL character encoding configuration, will be garbled.

Configuration methods:

Modify MySQL my.ini file folder. as follows:

 

[mysql]

default-character-set=utf8

[mysqld]
default-character-set=utf8

或者将下面的这段

## UTF 8 Settings
#init-connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
#character_set_server=utf8
#skip-character-set-client-handshake
#character_sets-dir="E:/xampp/mysql/share/charsets"#character_set_server=utf8的注释符“#”去掉

## UTF 8 Settings
#init-connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
character_set_server=utf8
#skip-character-set-client-handshake
#character_sets-dir="E:/xampp/mysql/share/charsets"

重新启动MYSQL,中文乱码消失,下面是验证过程:

 

1、连接数据库

>> myconn=database('mystudent','root','','com.mysql.jdbc.Driver','jdbc:mysql://localhost:3306/mystudent')
 
myconn =
 
       Instance: 'mystudent'
       UserName: 'root'
         Driver: 'com.mysql.jdbc.Driver'
            URL: 'jdbc:mysql://localhost:3306/mystudent'
    Constructor: [1x1 com.mathworks.toolbox.database.databaseConnect]
        Message: []
         Handle: [1x1 com.mysql.jdbc.JDBC4Connection]
        TimeOut: 0
     AutoCommit: 'on'
           Type: 'Database Object'

2、建立游标

>> mycurs=exec(myconn,'select * from myst')
 
mycurs =
 
        Attributes: []
              Data: 0
    DatabaseObject: [1x1 database]
          RowLimit: 0
          SQLQuery: 'select * from myst'
           Message: []
              Type: 'Database Cursor Object'
         ResultSet: [1x1 com.mysql.jdbc.JDBC4ResultSet]
            Cursor: [1x1 com.mathworks.toolbox.database.sqlExec]
         Statement: [1x1 com.mysql.jdbc.StatementImpl]
             Fetch: 0

>> a=fetch(mycurs)
 
a =
 
        Attributes: []
              Data: {2x2 cell}
    DatabaseObject: [1x1 database]
          RowLimit: 0
          SQLQuery: 'select * from myst'
           Message: []
              Type: 'Database Cursor Object'
         ResultSet: [1x1 com.mysql.jdbc.JDBC4ResultSet]
            Cursor: [1x1 com.mathworks.toolbox.database.sqlExec]
         Statement: [1x1 com.mysql.jdbc.StatementImpl]
             Fetch: [1x1 com.mathworks.toolbox.database.fetchTheData]

3、读取数据,可以看到中文正常

>> a.Data

ans =

    '上大'    [1]
    '追求'    [0]

4、写数据,查看中文是否正常

>> colnames={'name','确定否'}

colnames =

    'name'    '确定否'

 
>> insert(myconn,'myst',colnames,{'张三',logical(1)})
>>

 

重新读取数据

>> mycurs=exec(myconn,'select * from myst')
 
mycurs =
 
        Attributes: []
              Data: 0
    DatabaseObject: [1x1 database]
          RowLimit: 0
          SQLQuery: 'select * from myst'
           Message: []
              Type: 'Database Cursor Object'
         ResultSet: [1x1 com.mysql.jdbc.JDBC4ResultSet]
            Cursor: [1x1 com.mathworks.toolbox.database.sqlExec]
         Statement: [1x1 com.mysql.jdbc.StatementImpl]
             Fetch: 0

>> a=fetch(mycurs)
 
a =
 
        Attributes: []
              Data: {3x2 cell}
    DatabaseObject: [1x1 database]
          RowLimit: 0
          SQLQuery: 'select * from myst'
           Message: []
              Type: 'Database Cursor Object'
         ResultSet: [1x1 com.mysql.jdbc.JDBC4ResultSet]
            Cursor: [1x1 com.mathworks.toolbox.database.sqlExec]
         Statement: [1x1 com.mysql.jdbc.StatementImpl]
             Fetch: [1x1 com.mathworks.toolbox.database.fetchTheData]

>>

>> a.Data

ans =

    '上大'    [1]
    '追求'    [0]
    '张三'    [1]

>>
Published 473 original articles · won praise 14 · views 60000 +

Guess you like

Origin blog.csdn.net/AI_LX/article/details/105165253