SQL Server插入中文乱码
Posted Tomorrow
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server插入中文乱码相关的知识,希望对你有一定的参考价值。
如果数据库的Collocation是英文的,字段是varchar类型,向表中插入中文数据,会出现乱码。
解决方法:
方法1. 修改varchar 为 nvarchar类型, 并在插入数据前加N,例如: insert into table_name(a) values (N\'中文\')
方法2. 如果不修改字段类型,还是varchar, 则需要修改数据库的Collocation为 中文,参考
---------------------------------------------------------------------------------------------------------
还有一种,在建表时,指定某个字段的语言,
方法 COLLATE Chinese_PRC_CS_AS_WS
示例:
create table test
(
a varchar(255) COLLATE Chinese_PRC_CS_AS_WS NULL,
b varchar(255) COLLATE sql_latin1_general_cp1_ci_as NULL
)
测试:
insert test values(\'中文\',\'中文\')
插入后 字段 a 为 中文 ,b 为 ??
---------------------------------------------------------------------------------------------------------
若是使用存储过程插入数据的话,需要将对应的参数类型改为nvarchar。
示例:
create PROCEDURE [dbo].[export_Create]
@C_HM nvarchar(128)
AS
INSERT INTO export
([C_CCH])
values
(@C_HM)
在表格中,C_CCH为varchar类型。
以上是关于SQL Server插入中文乱码的主要内容,如果未能解决你的问题,请参考以下文章