各位高手,小弟碰到一个难题,由于要和国外传送接口,下面是接口的规则.
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 nulldrop table tblgocreate table tbl(A varchar(20),B varchar(20),C Nvarchar(20),)goinsert tblselect '+0','C0',N'ä' union allselect '+1','C1',N'A' union allselect '+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))) lenalena-----------1(1 row(s) affected)
------解决方案--------------------
用varchar 表示不了,会出现乱码的。
------解决方案--------------------
用一个数字去表示这个东西吧!传过去再处理。
------解决方案--------------------
直接用 varbinary 好了
------解决方案--------------------
字符集的问题,在考虑数据类型的时候要注意了,varchar或nvarchar