Начиная с SQL Server 2005 и далее, CONVERT делает то, что вам нужно:
CONVERT(varbinary(2000), '00001340132401324...', 2)
Стили для преобразования в / из двоичного файла:
- 0: исходные данные, кодовые точки ascii становятсядвоичные байты, кодовые точки UTF-16 становятся двумя байтами каждая.
- 1: шестнадцатеричный формат с префиксом «0x»
- 2: шестнадцатеричный формат, без префикса «0x»
Для преобразования символов в двоичный формат 0:
char
или varchar
данные (например, ASCII, ISO-8859-1) становятся двоичными байтами.Для односимвольных кодировок это означает, что по одному байту на символ. nchar
или nvarchar
данные (т. Е. UTF-16) становятся двумя байтами каждый в формате с прямым порядком байтов, поэтому N'ABC'
становится 0x410042004300
Для преобразования шестнадцатеричного числа в двоичное в форматах 1 и 2:
- Каждые две входные шестнадцатеричные цифры становятся одним байтом
- Если ввод недопустим в шестнадцатеричном видевозникает ошибка
- Пробелы и знаки препинания не допускаются
См. MSDN:
Если вам нужноUTF-8, смотрите мой ответ здесь для UDF, который преобразует текст в UTF-8: