询问者
SQL 2008 查詢分析器 查詢Latin1_General_BIN排序規則 結果顯示亂碼

问题
全部回复
-
给你个故意把collation弄错的例子。在SQL Server2005中试一试,它告诉你怎么让字符显示正常,或不正常
use northwind
drop table tbl1create table tbl1
(id int,
name varchar(30) collate Latin1_General_BIN,
lName char(40) collate Latin1_General_BIN
)--或
create table tbl1
(id int,
name varchar(30) collate Chinese_Taiwan_stroke_Bin,
lName char(40) collate Chinese_Taiwan_stroke_Bin
)create table tbl1
(id int,
name varchar(30) collate Chinese_Taiwan_stroke_Bin,
lName char(40) collate Chinese_Taiwan_stroke_Bin
)go
--注释:插入的字是等效于 insert into tbl1 values(1,N'數據庫查詢結果',N'顯示亂碼')
insert into tbl1 values(1,0xBCC6BEDAAE77AC64B8DFB5B2AA4700000000000000000000000000000000,
0xC5E3A5DCB6C3BD5820202020202020202020202020202020202020202020)
--不能正常显示繁体汉字
select lname collate Latin1_General_BIN from tbl1
--能正常显示繁体汉字
select lname collate Chinese_Taiwan_stroke_Bin from tbl1 -
非常感謝您的回答, 現在測試結果如下,也是我最為不解的問題,
create table tbl1
(id int,
name varchar(30) collate Latin1_General_BIN,
lName char(40) collate Latin1_General_BIN
)insert into tbl1 values(1,0xBCC6BEDAAE77AC64B8DFB5B2AA4700000000000000000000000000000000,
0xC5E3A5DCB6C3BD5820202020202020202020202020202020202020202020)--不能正常显示繁体汉字
select lname collate Latin1_General_BIN from tbl1
--查詢結果 : Åã¥Ü¶Ã½X
--能正常显示繁体汉字
select lname collate Chinese_Taiwan_stroke_Bin from tbl1
---查詢結果: Aa¥U?A?X另外的2種排序規則沒問題,以上問題是我操作錯誤還是怎麼樣?始終沒看到正確的中文顯示! 迫切希望得到答案,非常感謝!
-
按照 Latin1_General_BIN来存放繁体中文是不对的,确实显示不了。
x0BCC6BEDA 的编码如果解释为Big5(Chinese_Taiwan_stroke_Bin)代表了繁体中文“數據”。
x0BCC6BEDA 的编码如果解释为 Latin1_General 代表了 Åã¥Ü¶Ã½X 。都是区域性的标准,不用Unicode就打架了。
你应该一开始就用collation = Chinese_Taiwan_stroke_Bin的字段存放繁体中文。存成Latin1_General_BIN的话,如果编码codepoint还在,那我估计只能用函数转换了。
-
刚创建的tbl1中怎么看都是乱码,因为采用了collate Latin1_General_BIN
这么转换一下就可以看了:
create table tbl2
(id int,
name varchar(30) collate Chinese_Taiwan_stroke_Bin,
lName char(40) collate Chinese_Taiwan_stroke_Bin
)
insert into tbl2
select id, convert(binary, name),convert(binary, lname) from tbl1select * from tbl2 --能正常显示繁体汉字
我想这不是最好的转换但是能用.
- 已标记为答案 Nai-dong Jin - MSFTModerator 2010年7月1日 6:40
- 取消答案标记 數據庫管理員 2010年7月12日 8:01