SQL插入数据中文为乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL插入数据中文为乱码相关的知识,希望对你有一定的参考价值。

建表语句:
/* tablename: 科目类型表2 */
create table bd_subjtype (
balanposition char(1) null
/*平衡位置*/,
balanorient smallint null
/*余额方向*/,
subjtypename varchar(200) null
/*科目类型名称*/,
typeindex varchar(30) null
/*科目类型顺序号*/,
pk_corp char(4) null
/*公司编码*/,
pk_subjtype char(20) not null
/*科目类型主键*/,
group_index smallint null
/*科目类型分组*/,
typeproperty varchar(10) null default 'PT'
/*科目类型性质*/,
constraint pk_bd_subjtype primary key (pk_subjtype),
ts char(19) null default convert(char(19),getdate(),20),
dr smallint null default 0
)
go

insert into bd_subjtype (BALANORIENT, BALANPOSITION, DR, GROUP_INDEX, PK_CORP, PK_SUBJTYPE, SUBJTYPENAME, TS, TYPEINDEX, TYPEPROPERTY)
values (1, 'Y', 0, 3, '0001', '00010000000000000022', '损益', '2006-11-02 11:39:11', '6', 'SY');

插进去的汉字尾乱码、
数据库是sqlserver2005
编码方式在哪设的?
看了下,在汉字前面加上N 则插入和取出都是完整的汉字,如果不加N则是乱码

参考技术A 你的是什么数据库?一般数据库有很多级别的编码的,比如数据库服务器上有一个编码方式,客户端一个编码方式,建立数据库时有编码方式,建表时有编码方式,表中建立字段时有编码方式,对于中文来说,必须使得这些编码方式都统一,才可以正常显示,你看一看你的编码方式统一了没有吧,如果你的中文较多,建议设置编码方式为GB2312。

楼上的,这是SQL语句,专门用来操纵数据库的,光是这语句很简单的,网上就能搜到
参考技术B 请直接在sql 查询器中执行以上语句,如果仍有乱码,很可能是数据库的字符集没有设置好。
如果你用的是sql server 2000,

最好检查该数据库的字符集 (Collation) 是不是 gb2312类, 例如
Chinese_PRC_CI_AS

MySql中插入乱码问题解决

  今天在使用Java写入数据库时候,发现Insert语句和Update语句在执行过后,数据库中中文显示的是“??”,经过一番查阅,其中关键的问题在于编码格式是否统一。

  其中创建表时候,每个关键字的格式都设置为统一的,这里我设置为utf8如图:

  

  然后会发现,在数据库中,执行sql语句时,不会发生乱码,但是在使用Java调用的时候,就会乱码,其实原因也是这样,在连接数据库时,我们需要定义编码格式,大家看代码就明白了,当编码格式全部统一为utf8时候,就不会出现乱码了。

  

1 Class.forName("com.mysql.jdbc.Driver").newInstance(); 
2             //mydatabase为数据库名,_test为表名。_test表中有三个字段:id name author publish
3             con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase?characterEncoding=utf8","root","123456");

  其中编码格式的设定就是{?characterEncoding=utf8}这句话。

  (另外一个就是导入数据时候也发生了乱码现象,解决办法如下:)  

MySql中默认的数据库编码集都不是utf-8的,所以在导入数据表的时候有中文会报错,这时候就新建一个自己的数据库,选择编码格式为utf8,排序集则选择utf8-Unicode,然后再导入数据就可以了。

  参考:http://www.cnblogs.com/time-is-life/p/5901868.html

  修改默认字符集:http://www.cnblogs.com/xingyunblog/p/3836299.html

  (仅供参考学习)

以上是关于SQL插入数据中文为乱码的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis +sql server 插人中文乱码

java.sql.Connection解决插入数据库中文乱码问题

navicat我用UTF-8格式运行SQL语句插入的数据为啥汉字会变成乱码

mysql利用sql脚本插入数据中文乱码

sql语句有中文,乱码怎么解决

Java插入sql数据后,显示的中文不正确或乱码