中国の文字化けを解決するために、MATLAB-JDBC操作のMySQLデータベース

中国を読み書きするために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]

>>
公開された473元の記事 ウォン称賛14 ビュー60000 +

おすすめ

転載: blog.csdn.net/AI_LX/article/details/105165253