日期:2014-05-18  浏览次数:20765 次

sql server 存特殊字符
各位高手,小弟碰到一个难题,由于要和国外传送接口,下面是接口的规则.
Value hex code ASCII
+0 C0 ä
+1 C1 A
+2 C2 B
+3 C3 C
+4 C4 D
+5 C5 E
+6 C6 F
+7 C7 G
+8 C8 H
+9 C9 I

其他都没问题,唯独表示+0时候要用特殊字符ä表示,我尝试用NVARCHAR表示ä成功,但对方表示是双字节的,必须用单字节表示,但我SQLDERVER是中文字符集,无法用单字节表示这个ä,
大家有什么好的办法吗
谢谢

------解决方案--------------------
那你就传0xC0给他
------解决方案--------------------
SQL code
if object_id('tbl')is not null
drop table tbl
go
create table tbl(
A varchar(20),
B varchar(20),
C Nvarchar(20),
)
go
insert tbl
select '+0','C0',N'ä' union all
select '+1','C1',N'A' union all
select '+2','C2',N'B'

select * from tbl

(3 行受影响)
A                    B                    C
-------------------- -------------------- --------------------
+0                   C0                   ä
+1                   C1                   A
+2                   C2                   B

------解决方案--------------------
谁说是双字节的喔?
SQL code

select len(cast(N'ä' as nvarchar(2))) lena

lena
-----------
1

(1 row(s) affected)

------解决方案--------------------
用varchar 表示不了,会出现乱码的。
------解决方案--------------------
用一个数字去表示这个东西吧!传过去再处理。
------解决方案--------------------
直接用 varbinary 好了
------解决方案--------------------
字符集的问题,在考虑数据类型的时候要注意了,varchar或nvarchar