在5.0版本中,可以用.txt文本的方式导入数据库,但是格式和数据库里建好的表结构吻合!
可是在我在导入的时候出现了乱码????????的问题.
文本可以导入,但汉字全是乱码.问?为什么?
表结构如下:
id  INTEGER
name  VARCHAR(10)   gb2312
sex   VARCHAR(10)   gb2312文本的结果:
1     张小喊    男
2    张小喊    男
3     张小喊    男
..
.导入数据库就成了
1   ?????     ??
2   ?????     ??
就是这样了
给位想想办法!!\
谢谢!!

解决方案 »

  1.   

    贴出你的show variables like '%char%';结果
      

  2.   

    mysql> show variables like '%char%';
    +--------------------------+---------------------------------------------------------+
    | Variable_name            | Value                                                   |
    +--------------------------+---------------------------------------------------------+
    | character_set_client     | gbk                                                     |
    | character_set_connection | gbk                                                     |
    | character_set_database   | latin1                                                  |
    | character_set_filesystem | binary                                                  |
    | character_set_results    | gbk                                                     |
    | character_set_server     | latin1                                                  |
    | character_set_system     | utf8                                                    |
    | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
    +--------------------------+---------------------------------------------------------+
    8 rows in set (0.00 sec)
      

  3.   

    在MY.INI里添加:
    [mysql]default-character-set=gb2312
    [mysqld]
    default-character-set=gb2312然后重新启动MYSQL服务。进入数据库alter database charset = gb2312;还要记得在导入数据库的脚本的前面写上 set names gb2312;这样就OK了。
      

  4.   

    alter database  你的数据库名 charset = gb2312;
      

  5.   

    MYSQL不知道。哈哈。不过MSSQL里面用 nvarchar(50)可以存放。不会有乱码。
      

  6.   

    MySQL5用load data导入数据乱码问题和数据被篡改问题,请教版主和各位高手:
    我安装的是mysql5.0.51a for win32,
    操作系统是XP。
    MySQL默认的字符编码为utf-8。
    系统信息如下:
    mysql> \s
    --------------
    mysql  Ver 14.12 Distrib 5.0.51a, for Win32 (ia32)Connection id:          21
    Current database:       cass
    Current user:           root@localhost
    SSL:                    Not in use
    Using delimiter:        ;
    Server version:         5.0.51a-community-nt MySQL Community Edition (GPL)
    Protocol version:       10
    Connection:             localhost via TCP/IP
    Server characterset:    utf8
    Db     characterset:    utf8
    Client characterset:    utf8
    Conn.  characterset:    utf8
    TCP port:               3306
    Uptime:                 2 hours 15 min 20 secThreads: 1  Questions: 79  Slow queries: 0  Opens: 21  Flush tables: 1  Open tables: 1  Queries per second avg: 0.010
    --------------字符编码信息如下:
    mysql> show variables like '%set%';
    +--------------------------+--------------------------------+
    | Variable_name            | Value                          |
    +--------------------------+--------------------------------+
    | auto_increment_offset    | 1                              |
    | character_set_client     | utf8                           |
    | character_set_connection | utf8                           |
    | character_set_database   | utf8                           |
    | character_set_filesystem | binary                         |
    | character_set_results    | utf8                           |
    | character_set_server     | utf8                           |
    | character_set_system     | utf8                           |
    | character_sets_dir       | E:\cass\MySQL5\share\charsets\ |
    +--------------------------+--------------------------------+
    9 rows in set (0.00 sec)
    操作过程:1、在DOS提示符下连接MySQL,进入之后建立数据库和数据表,操作过程如下:
    mysql> drop database if exists cass;
    mysql> create database cass DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    mysql> use cass;
    mysql> create table sys_radi(ID int not null, bsbh int not null, bschar varchar(20) not null);2、然后把如下内容保存在D:盘根目录的文件中:
    ----数据内容开始,不包含本行----
    1 1 一
    2 1 丨
    3 1 丿
    4 1 丶
    5 1 乙
    6 1 乛
    7 1 
    8 1 乚
    9 2 二
    10 2 十
    ----数据内容结束,不包含本行----
    以上数据是在Windows中用记事本录入的,各列数据之间用tab键隔开,分别以UTF-8编码和ANSI编码保存成两个文件:
    d:\datautf8.txt
    d:\datagb.txt3、下面在mysql提示符下输入load data命令导入d:\datautf8.txt,然后检查结果:mysql> load data local infile "d:\\datautf8.txt" into table sys_radi LINES TERMINATED by '\r\n';
    Query OK, 10 rows affected, 1 warning (0.02 sec)
    Records: 10  Deleted: 0  Skipped: 0  Warnings: 0mysql> select * from sys_radi;
    +----+------+--------+
    | ID | bsbh | bschar |
    +----+------+--------+
    |  0 |    1 | 涓€     |
    |  2 |    1 | 涓?    |
    |  3 |    1 | 涓?    |
    |  4 |    1 | 涓?    |
    |  5 |    1 | 涔?    |
    |  6 |    1 | 涔?    |
    |  7 |    1 | 顮?     |
    |  8 |    1 | 涔?    |
    |  9 |    2 | 浜?    |
    | 10 |    2 | 鍗?    |
    +----+------+--------+
    10 rows in set (0.00 sec)这次导入第1条记录的ID不正确,而且所有记录的第3个字段都是乱码。4、现在把所有记录删掉,重新用load data命令导入d:\datagb.txt,然后检查结果:mysql> delete from sys_radi;
    Query OK, 10 rows affected (0.02 sec)mysql> load data local infile "d:\\datagb.txt" into table sys_radi LINES TERMINATED by '\r\n';
    Query OK, 10 rows affected, 5 warnings (0.03 sec)
    Records: 10  Deleted: 0  Skipped: 0  Warnings: 0mysql> select * from sys_radi;
    +----+------+--------+
    | ID | bsbh | bschar |
    +----+------+--------+
    |  1 |    1 | 一      |
    |  2 |    1 | 丨      |
    |  3 |    1 | 丿      |
    |  4 |    1 | 丶      |
    |  5 |    1 |        |
    |  6 |    1 |        |
    |  7 |    1 |        |
    |  8 |    1 |        |
    |  9 |    2 |        |
    | 10 |    2 | 十      |
    +----+------+--------+
    10 rows in set (0.00 sec)这次导入,ID全对了,但是有一部分记录的第3个字段的数据丢了。
    我究竟怎么样操作才能将数据正确导入?5、JSP页面读取测试忽略第4步,接第3步继续。
    建立一个JSP页面,代码如下:
    ----页面代码开始,不包含本行----
    <%@ page contentType="text/html; charset=UTF-8" %>
    <%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.* "%>
    <html> 
    <body> 
    <%
    Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    String url="jdbc:mysql://localhost/cass";
    Connection  conn=DriverManager.getConnection(url,"root","dahuzi");
    Statement stmt = conn.createStatement();
    String sqlstr="select * from sys_radi";
    ResultSet rs= stmt.executeQuery(sqlstr);while(rs.next()){
    out.println(rs.getString(1));
    out.println("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
    out.println(rs.getString(2));
    out.println("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
    out.println(rs.getString(3));
    out.println("<br>");
    }
    out.println("<br>");
    out.print("恭喜~! 打开数据库操作成功!");
    rs.close();
    stmt.close();
    conn.close();
    %></body> 
    </html>
    ----页面代码结束,不包含本行----
    以UTF-8格式保存页面文件为test_utf8.jsp,然后在浏览器地址栏输入:
    http://localhost:8080/test/test_utf8.jsp
    发现页面显示如下:
    ----页面显示开始,不包含本行----
    0       1       一 
    2       1       丨 
    3       1       丿 
    4       1       丶 
    5       1       乙 
    6       1       乛 
    7       1        
    8       1       乚 
    9       2       二 
    10       2       十 恭喜~! 打开数据库操作成功!
    ----页面显示结束,不包含本行----
    这样看来,MySQL客户端不能直接显示数据库中以UTF-8编码的字符串字段的汉字内容,所以会乱码。
    在JSP页面中设置网页编码为UTF-8之后,就能正确显示数据库中以UTF-8编码的字符串字段的汉字内容了。
    现在的问题在于:为什么第一行数据的第一个字段,即数值1,为什么导入数据库之后变成0了呢?
      

  7.   

    不改变mysql客户端不知道能不能解决?
      

  8.   

    下边是配置信息:

    mysql> \s
    --------------
    mysql  Ver 14.12 Distrib 5.0.18, for Win32 (ia32)Connection id:          5
    Current database:       b2b
    Current user:           root@localhost
    SSL:                    Not in use
    Using delimiter:        ;
    Server version:         5.0.18-nt
    Protocol version:       10
    Connection:             localhost via TCP/IP
    Server characterset:    latin1
    Db     characterset:    latin1
    Client characterset:    latin1
    Conn.  characterset:    latin1
    TCP port:               3306
    Uptime:                 1 hour 29 min 46 secThreads: 1  Questions: 6975  Slow queries: 0  Opens: 208  Flush tables: 1  Open
    tables: 0  Queries per second avg: 1.295
      

  9.   

    mysql>   show   variables   like   '%char% '; 
    +--------------------------+---------------------------------------------------------+ 
    |   Variable_name                         |   Value                                                                                                       | 
    +--------------------------+---------------------------------------------------------+ 
    |   character_set_client           |   latin1                                                                                                          | 
    |   character_set_connection   |   latin1                                                                                                          | 
    |   character_set_database       |   latin1                                                                                                     | 
    |   character_set_filesystem   |   binary                                                                                                     | 
    |   character_set_results         |   latin1                                                                                                           | 
    |   character_set_server           |   latin1                                                                                                     | 
    |   character_set_system           |   utf8                                                                                                         | 
    |   character_sets_dir               |   C:\Program   Files\MySQL\MySQL   Server   5.0\share\charsets\   | 
      

  10.   

    我输入这语句用heisql 工具一直显示sql error 1064