中国を読み書きするためにMATLABを使用してJDBC接続MYSQLデータベースは、データを文字化け構成の問題が原因である自分自身をMYSQL
テスト・データベースをコードするUTF8、中国WINDOWS用オペレーティングシステムである、すなわち、オペレーティング・システム・コードは、GBKはないMYSQLの文字は、構成をコードする場合、文字化けするだろう、です。
設定方法:
変更MySQLのmy.iniファイルフォルダ。次のとおりです。
[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]
>>