SQL Server2008数据中文乱码

时间:2023-01-05 10:28:19
SQL Server2008数据中文乱码

其中出现了???这几个都是汉字 但是显示就出现了乱码,以前这个数据库损坏过,修复以后汉字不能正常显示了,是乱码

15 个解决方案

#1


 看一下你的排序规则

#2


引用 1 楼 dw_chaoyue 的回复:
 看一下你的排序规则
SQL Server2008数据中文乱码

#3


你的库有没有备份哦,看一下你之前的排序规则 。我的Q 2874566617 ,这个问题可以详聊  

#4


create proc test
as
SET NOCOUNT ON;
declare @1 char(100) ,@2 char(100)
declare test_cursor cursor for  
select 表a字段2,表a字段3(表bID) from 表a order by 表aID
OPEN test_cursor
FETCH NEXT FROM test_cursor 
INTO @1, @2;
while @@FETCH_STATUS =0 begin
update 表a set 表a字段4 =@2  where eid =@1
end 
CLOSE product_cursor;
DEALLOCATE product_cursor;
SET NOCOUNT OFF;

#5


已经存在于数据库的乱码就算该设置也不能自动恢复,需要重新录入,对于多语言配置,用nvarchar/nchar类型,录入时加上N'录入的内容',这样可以避免乱码

#6


引用 5 楼 DBA_Huangzj 的回复:
已经存在于数据库的乱码就算该设置也不能自动恢复,需要重新录入,对于多语言配置,用nvarchar/nchar类型,录入时加上N'录入的内容',这样可以避免乱码

重新录入肯定是不可能的了,太多了。。。。。
这个数据库其实是别人给我的 以前的数据库可能有损坏  让我帮忙修复
对于已经存在了的乱码 难道没有别的解决方案?? 

#7


应该是有方法的,但是可能要深入很底层去修复,或者第三方软件甚至公司,这我就不懂了

#8


其实乱码通常是简繁体的编码问题,你可以把某些数据按正确的格式导出,然后统一更新,

#9


引用 8 楼 jack11430 的回复:
其实乱码通常是简繁体的编码问题,你可以把某些数据按正确的格式导出,然后统一更新,

嗯?具体点。。。。。不是很懂耶

#10


看下,如果下面的语句执行结果都是 63,说明数据已经被损坏。

select ascii(substring(bathtype, 1,1)),ascii(substring(bathtype, 2,1)) from 表名

#11


引用 10 楼 fancylee 的回复:
看下,如果下面的语句执行结果都是 63,说明数据已经被损坏。

select ascii(substring(bathtype, 1,1)),ascii(substring(bathtype, 2,1)) from 表名
SQL Server2008数据中文乱码
这是执行的结果bathtype 是个什么意思。。。求指教

#12


sorry,是babhtype 哇?看不清楚你图片上的字段。

#13


http://blog.csdn.net/maco_wang/article/details/6593698

关于产生的原因可以看一下这个.

#14


引用 13 楼 maco_wang 的回复:
http://blog.csdn.net/maco_wang/article/details/6593698

关于产生的原因可以看一下这个.

你博客里面是录入数据的时候针对如何避免乱码的解决方案,可是我的数据已经存在了,,,不可能说在重新录入一遍,数据量太大了!
对于已经存在的数据 有没有办法解决呢?这是我的问题。。。。

#15


MSSQL乱码基于两点 cause:
1. 没有使用NVARCHAR或NCHAR类型的列;
2. 插入没有使用N标识符。如INSERT INTO TABLE1(NAME) VALUES (N'中国')
能够注意此两点通常不会有乱码出现的。。。

#1


 看一下你的排序规则

#2


引用 1 楼 dw_chaoyue 的回复:
 看一下你的排序规则
SQL Server2008数据中文乱码

#3


你的库有没有备份哦,看一下你之前的排序规则 。我的Q 2874566617 ,这个问题可以详聊  

#4


create proc test
as
SET NOCOUNT ON;
declare @1 char(100) ,@2 char(100)
declare test_cursor cursor for  
select 表a字段2,表a字段3(表bID) from 表a order by 表aID
OPEN test_cursor
FETCH NEXT FROM test_cursor 
INTO @1, @2;
while @@FETCH_STATUS =0 begin
update 表a set 表a字段4 =@2  where eid =@1
end 
CLOSE product_cursor;
DEALLOCATE product_cursor;
SET NOCOUNT OFF;

#5


已经存在于数据库的乱码就算该设置也不能自动恢复,需要重新录入,对于多语言配置,用nvarchar/nchar类型,录入时加上N'录入的内容',这样可以避免乱码

#6


引用 5 楼 DBA_Huangzj 的回复:
已经存在于数据库的乱码就算该设置也不能自动恢复,需要重新录入,对于多语言配置,用nvarchar/nchar类型,录入时加上N'录入的内容',这样可以避免乱码

重新录入肯定是不可能的了,太多了。。。。。
这个数据库其实是别人给我的 以前的数据库可能有损坏  让我帮忙修复
对于已经存在了的乱码 难道没有别的解决方案?? 

#7


应该是有方法的,但是可能要深入很底层去修复,或者第三方软件甚至公司,这我就不懂了

#8


其实乱码通常是简繁体的编码问题,你可以把某些数据按正确的格式导出,然后统一更新,

#9


引用 8 楼 jack11430 的回复:
其实乱码通常是简繁体的编码问题,你可以把某些数据按正确的格式导出,然后统一更新,

嗯?具体点。。。。。不是很懂耶

#10


看下,如果下面的语句执行结果都是 63,说明数据已经被损坏。

select ascii(substring(bathtype, 1,1)),ascii(substring(bathtype, 2,1)) from 表名

#11


引用 10 楼 fancylee 的回复:
看下,如果下面的语句执行结果都是 63,说明数据已经被损坏。

select ascii(substring(bathtype, 1,1)),ascii(substring(bathtype, 2,1)) from 表名
SQL Server2008数据中文乱码
这是执行的结果bathtype 是个什么意思。。。求指教

#12


sorry,是babhtype 哇?看不清楚你图片上的字段。

#13


http://blog.csdn.net/maco_wang/article/details/6593698

关于产生的原因可以看一下这个.

#14


引用 13 楼 maco_wang 的回复:
http://blog.csdn.net/maco_wang/article/details/6593698

关于产生的原因可以看一下这个.

你博客里面是录入数据的时候针对如何避免乱码的解决方案,可是我的数据已经存在了,,,不可能说在重新录入一遍,数据量太大了!
对于已经存在的数据 有没有办法解决呢?这是我的问题。。。。

#15


MSSQL乱码基于两点 cause:
1. 没有使用NVARCHAR或NCHAR类型的列;
2. 插入没有使用N标识符。如INSERT INTO TABLE1(NAME) VALUES (N'中国')
能够注意此两点通常不会有乱码出现的。。。