Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 конвертировать строку unicode в utf-8  [new]
lgdmitry
Member

Откуда: Energodar
Сообщений: 48
Подскажите пожалуйста как в sql server 2008 конвертировать строку

\u041f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u0414\u041e\u0421\u0422\u0410\u0412\u041a\u0418 6-07-13

в кириллицу
12 июл 13, 12:59    [14557374]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать строку unicode в utf-8  [new]
Glory
Member

Откуда:
Сообщений: 104760
С помощью REPLACE
12 июл 13, 13:03    [14557415]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать строку unicode в utf-8  [new]
lgdmitry
Member

Откуда: Energodar
Сообщений: 48
Glory,

что то я не понял, репласе делает замену, причем здесь репласе к конвертации ? Может пример дадите
12 июл 13, 13:06    [14557432]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать строку unicode в utf-8  [new]
Glory
Member

Откуда:
Сообщений: 104760
lgdmitry
что то я не понял, репласе делает замену, причем здесь репласе к конвертации ?

При том что вы называете перекодировку конвертацией.
А MSSQL перекодировкой не занимается
Поэтому вам придется написать свою функцию/процедуру с REPLACE, которая, как вы правильно заметили, заменит одни символы на другие
12 июл 13, 13:13    [14557491]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать строку unicode в utf-8  [new]
lgdmitry
Member

Откуда: Energodar
Сообщений: 48
Glory,

ну это и ежу понятно, я думал может есть в sql server внутрение средства.
12 июл 13, 13:18    [14557547]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать строку unicode в utf-8  [new]
Glory
Member

Откуда:
Сообщений: 104760
lgdmitry
ну это и ежу понятно, я думал может есть в sql server внутрение средства.

MSSQL не занимается перекодированием. Это и еже понятно.
12 июл 13, 13:20    [14557566]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать строку unicode в utf-8  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
DECLARE @S VARCHAR(200)='\u041f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u0414\u041e\u0421\u0422\u0410\u0412\u041a\u0418';

SELECT
(
 SELECT C
 FROM
 (
  SELECT number,NCHAR(SUBSTRING(CONVERT(VARBINARY(200),REPLACE(REPLACE(@S,'\u',''),' ','0020'),2),number*2+1,2))
  FROM master.dbo.spt_values
  WHERE type='P' AND number BETWEEN 0 AND LEN(REPLACE(@S,' ',''))/6-1
 ) T(N,C)
 ORDER BY N
 FOR XML PATH(''),TYPE
).value('.','NVARCHAR(200)');
12 июл 13, 13:58    [14557933]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать строку unicode в utf-8  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
Неправильно. Вот так:
DECLARE @S VARCHAR(200)='\u041f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u0414\u041e\u0421\u0422\u0410\u0412\u041a\u0418';

SELECT
(
 SELECT C
 FROM
 (
  SELECT number,NCHAR(SUBSTRING(CONVERT(VARBINARY(200),REPLACE(REPLACE(@S,'\u',''),' ','0020'),2),number*2+1,2))
  FROM master.dbo.spt_values
  WHERE type='P' AND number BETWEEN 0 AND LEN(REPLACE(REPLACE(@S,'\u',''),' ','0020'))/4-1
 ) T(N,C)
 ORDER BY N
 FOR XML PATH(''),TYPE
).value('.','NVARCHAR(200)');
12 июл 13, 14:00    [14557947]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать строку unicode в utf-8  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
Только вот число 200 я туда произвольное вставил. Раздражает. Может, MAX туда прописать?
12 июл 13, 14:02    [14557978]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать строку unicode в utf-8  [new]
lgdmitry
Member

Откуда: Energodar
Сообщений: 48
iap,

Спасибо! То что нужно.
12 июл 13, 15:00    [14558559]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить