FileInputStream fs=null;问题出在这,这是字节流,是一个字节一个字节传输的,汉语是每个字都是一个字符(也就是两个字节),一个字节一个字节读当然乱码了。试试FileReader这个类。
解决的方法和详细的 *** 作步骤如下:
1、首先,单击“Objects”按钮以查看有关此表的详细信息,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,“teacName”字段的字符集不是“utf8”,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,可以右键单击此表,然后选择“Alter Table”选项,如下图所示,然后进入下一步。
4、然后,完成上述步骤后,在“teacName”字段后面的字符集中选择“utf8_general_ci”选项,然后单击下面的“Alter”按钮,如下图所示,然后进入下一步。
5、随后,完成上述步骤后,成功修改,单击“确定”按钮,如下图所示,然后进入下一步。
6、最后,完成上述步骤后,再次插入中文数据,就不会出现乱码了,如下图所示。这样,问题就解决了。
你找到MySql的服务器安装路径,默认是C:\Program
Files\MySQL\MySQL
Server
50,找到myini这个配置文件,然后把default-character-set的值改成utf8,有两个地方如果还不行,看下乱码的那个列的编码格式,把字符集改成utf8,把整理改成utf8_general_ci
MySQL中默认字符集的设置有四级:服务器级,数据库级,表级
。最终是字段级
的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用show
create
table
table
;
或show
full
fields
from
tableName;
来检查当前表中字段的字符集设置。
MySQL中关于连接环境的字符集设置有
Client端,connection,
results
通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。基本上99%的乱码由些造成。
上面是我抄网上的资料来的。我试了一下。发现
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
|
/usr/share/mysql/charsets/
|
+--------------------------+----------------------------+
8
rows
in
set
(000
sec)
解决方法已经找到。进入数据后
use
数据库名;
names
utf8;
不过这样会每次进入都必须重新设置。因此。还可以在/etc/mysql/myconf里添加
[mysql]
#no-auto-rehash
#
faster
start
of
mysql
but
no
tab
completition
default-character-set=utf8
这样数据库就不每次按照utf8字符集来导入到数据库了
以上就是关于JAVA往sqlserver数据库添加数据,中文乱码,怎么弄全部的内容,包括:JAVA往sqlserver数据库添加数据,中文乱码,怎么弄、sql文件导入后,中文变乱码,怎样解决、C#插入MySQL数据库库中的数据变成乱码怎么解决啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)