【发布时间】:2018-11-30 06:47:15
【问题描述】:
我正在运行这样的查询:
SELECT CAST(CAST(IDAT as varbinary(max)) as varchar(max))
IDAT 列类型为“图像”,查询执行成功,但某些土耳其语字符是 'çaÄŸdaÅŸ' 像这样。它应该是“çağdaş”。 我试过这个:
SELECT CAST(CAST(IDAT as varbinary(max)) as varchar(max)) COLLATE Turkish_CI_AS
什么都没有改变。有人对这种情况有想法吗?
【问题讨论】:
-
'çaÄŸdaÅŸ' 是 9 个符号,而 'çağdaş' 只有 6 个。IDAT 中数据的大小是多少? Post 是十六进制值。你知道那里存储的数据使用的编码吗?
-
值铸造VARCHAR之前:0x68C3BC736579696E20616C692076656C69206E6F746C617220C59F65726D696E2061C49F72C4B120C3B66BC3BC7A20C3A761C49F6461C59F我不知道使用该数据进行编码跨度>
-
SQL Server 已经支持 Unicode。 不要将文本存储为二进制,你不需要它
-
Unicode 类型为
nchar和nvarchar。不要使用varchar,除非您可以确保文本与排序规则匹配。
标签: sql sql-server database tsql