我想在SSMS的“输出”消息中打印框绘图字符。它包括例如║或░或╬。 我脑海中有完整的字符列表,可以找到here。
当我尝试以下操作时:PRINT '╬'
仅在我期望+
时返回╬
。
当我执行SELECT ASCII('╬')
时,它返回43
,但是当我执行SELECT CHAR(43)
时,它返回({并不奇怪)+
。
与整理有关吗?如果是这样,我如何找到要使用的排序规则?
答案 0 :(得分:1)
SQL Server中的简单文字是-默认情况下为printers table:
printer ID,printer ip, status,row_update_date
A ,1.1.1.1 ,
A ,1.1.1.2 ,
A ,1.1.1.3 ,
A ,1.1.1.4 ,
B ,1.1.2.1 ,
B ,1.1.2.2 ,
类型。此类型是 1字节编码的扩展ASCII :下半部分是 plain latin 字符集,上半部分取决于排序规则。这意味着,很少支持非标准字符。
第二个字符类型是CHAR / VARCHAR
。这是(几乎)Unicode,非常接近NCHAR / NVARCHAR
。实际编码为两字节编码的utf-16
。对非标准字符的支持(几乎)已经完成。以UCS-2
开头的所有文字都将视为N
:
尝试一下:
NCHAR / NVARCHAR
获取代码点的功能(反之亦然)-也是双重的:
SELECT '╬',N'╬';
DECLARE @str1a VARCHAR(10)='╬';
DECLARE @str1b VARCHAR(10)=N'╬'; --The NVARCHAR literal is changed to VARCHAR
DECLARE @str2 NVARCHAR(10)=N'╬';
SELECT @str1a,@str1b,@str2;
答案 1 :(得分:0)
您需要先以Unicode进行打印,即以N
为前缀:
PRINT N'╬'