其中出现了???这几个都是汉字 但是显示就出现了乱码,以前这个数据库损坏过,修复以后汉字不能正常显示了,是乱码
15 个解决方案
#1
看一下你的排序规则
#2
#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;
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
重新录入肯定是不可能的了,太多了。。。。。
这个数据库其实是别人给我的 以前的数据库可能有损坏 让我帮忙修复
对于已经存在了的乱码 难道没有别的解决方案??
#7
应该是有方法的,但是可能要深入很底层去修复,或者第三方软件甚至公司,这我就不懂了
#8
其实乱码通常是简繁体的编码问题,你可以把某些数据按正确的格式导出,然后统一更新,
#9
嗯?具体点。。。。。不是很懂耶
#10
看下,如果下面的语句执行结果都是 63,说明数据已经被损坏。
select ascii(substring(bathtype, 1,1)),ascii(substring(bathtype, 2,1)) from 表名
select ascii(substring(bathtype, 1,1)),ascii(substring(bathtype, 2,1)) from 表名
#11
这是执行的结果bathtype 是个什么意思。。。求指教
#12
sorry,是babhtype 哇?看不清楚你图片上的字段。
#14
你博客里面是录入数据的时候针对如何避免乱码的解决方案,可是我的数据已经存在了,,,不可能说在重新录入一遍,数据量太大了!
对于已经存在的数据 有没有办法解决呢?这是我的问题。。。。
#15
MSSQL乱码基于两点 cause:
1. 没有使用NVARCHAR或NCHAR类型的列;
2. 插入没有使用N标识符。如INSERT INTO TABLE1(NAME) VALUES (N'中国')
能够注意此两点通常不会有乱码出现的。。。
1. 没有使用NVARCHAR或NCHAR类型的列;
2. 插入没有使用N标识符。如INSERT INTO TABLE1(NAME) VALUES (N'中国')
能够注意此两点通常不会有乱码出现的。。。
#1
看一下你的排序规则
#2
#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;
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
重新录入肯定是不可能的了,太多了。。。。。
这个数据库其实是别人给我的 以前的数据库可能有损坏 让我帮忙修复
对于已经存在了的乱码 难道没有别的解决方案??
#7
应该是有方法的,但是可能要深入很底层去修复,或者第三方软件甚至公司,这我就不懂了
#8
其实乱码通常是简繁体的编码问题,你可以把某些数据按正确的格式导出,然后统一更新,
#9
嗯?具体点。。。。。不是很懂耶
#10
看下,如果下面的语句执行结果都是 63,说明数据已经被损坏。
select ascii(substring(bathtype, 1,1)),ascii(substring(bathtype, 2,1)) from 表名
select ascii(substring(bathtype, 1,1)),ascii(substring(bathtype, 2,1)) from 表名
#11
这是执行的结果bathtype 是个什么意思。。。求指教
#12
sorry,是babhtype 哇?看不清楚你图片上的字段。
#13
#14
你博客里面是录入数据的时候针对如何避免乱码的解决方案,可是我的数据已经存在了,,,不可能说在重新录入一遍,数据量太大了!
对于已经存在的数据 有没有办法解决呢?这是我的问题。。。。
#15
MSSQL乱码基于两点 cause:
1. 没有使用NVARCHAR或NCHAR类型的列;
2. 插入没有使用N标识符。如INSERT INTO TABLE1(NAME) VALUES (N'中国')
能够注意此两点通常不会有乱码出现的。。。
1. 没有使用NVARCHAR或NCHAR类型的列;
2. 插入没有使用N标识符。如INSERT INTO TABLE1(NAME) VALUES (N'中国')
能够注意此两点通常不会有乱码出现的。。。