declare @t table (name nvarchar(10))
insert @t values(N'繁體')
insert @t values(N'伝統的な')
insert @t values(N'전통')
select * from @t
/*
name
----------
繁體
伝統的な
전통
*/
insert @t values(N'繁體')
insert @t values(N'伝統的な')
insert @t values(N'전통')
select * from @t
/*
name
----------
繁體
伝統的な
전통
*/
--试试
SELECT name_chi COLLATE Chinese_Taiwan_Stroke_CI_AI FROM tb
把数据先导过去,
insert newtb
select cast(col as nchar(26))
from oldtb再读取显示看看
--在A上建立以下Function.
/*
返回Unicode字串
*/
CREATE FUNCTION GetNString(@in varbinary(8000))
RETURNS NVARCHAR(4000)
AS
BEGIN
DECLARE @H VARBINARY(1)
DECLARE @L VARBINARY(1)
DECLARE @C VARBINARY(2)
DECLARE @N NVARCHAR(4000)
DECLARE @i INT
SET @N=''
SET @i=1
WHILE @i<=LEN(@in)+1
BEGIN
SET @H=SUBSTRING(@in,@i+1,1)
SET @L=SUBSTRING(@in,@i,1)
SET @C=@H+@L
SET @N=@N+NCHAR(@C)
SET @i=@i+2
END
RETURN @N
END
GO
--然后这样调用
--
SELECT dbo.GetNString(CAST(cast(name_chi as nvarchar(100)) as varbinary(8000)))
FROM tb
然后要安装译典通软件后,,运行多语浏览,然后人事系统才能正常显示繁体,,
但在后台数据库,,Name_chi还没有人读出来过(包括在A机器上操作),发贴时,说明3错误了目前将就的解决方案:
让对方从前台系统中导出繁体字符,,
然后转换成简体,,再导入到B系统,,需要人工操作,,同时期待更好的方法。。
SELECT TOP 1 CAST (CAST(RTRIM(name_chi) as NVARCHAR(30)) as varbinary(60))
FROM NBstuff--然后再贴出该值对应的中文是什么
运行结果是:
name_chi
0xB3005C002000A800D3002000B5006F00
这个binary序列看起来不是中文字啊!
既然16进制都不同了,,在前台的系统里面,用典译通软件多语翻译功能,乱码却能显示出繁体字,有点郁闷~