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

Откуда:
Сообщений: 42
Добрый день,

Каким образом, вот это:

{"s_client_midname":"\u041c\u0438\u0445\u0430\u0439\u043b\u043e\u0432\u043d\u0430"}

можно привести в надлежащий вид? Средствами mssql естественно.
1 окт 15, 10:29    [18218659]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование кодировки.  [new]
Glory
Member

Откуда:
Сообщений: 104751
joker63
Средствами mssql естественно.

REPLACE()
1 окт 15, 10:34    [18218685]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование кодировки.  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
joker63
можно привести в надлежащий вид? Средствами mssql естественно.
declare @x xml, @result nvarchar(100), @s nvarchar(100) = N'{"s_client_midname":"\u041c\u0438\u0445\u0430\u0439\u043b\u043e\u0432\u043d\u0430"}';

select
 @x = cast(N'<a>' + replace(@s, N'\u', N'</a><a>') + N'</a>' as xml);

with a as
(
 select
  row_number() over (order by (select 1)) as rn,
  left(t.n.value('.', 'nvarchar(100)'), 4) as lp, substring(t.n.value('.', 'nvarchar(100)'), 5, 1000000) as rp
 from
  @x.nodes('/a') t(n)
)
select
 @result = ( 
  select
   b.c + a.rp
  from
   a cross apply
   (select case when a.lp like N'%[^0-9a-f]%' then a.lp else nchar(convert(binary(2), a.lp, 2)) end) b(c)
  order by
   a.rn
  for xml path(''), type).value('.', 'nvarchar(100)');

select @result;
1 окт 15, 11:15    [18219062]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование кодировки.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
sql server 2016 OPENJSON?
1 окт 15, 11:54    [18219436]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование кодировки.  [new]
joker63
Member

Откуда:
Сообщений: 42
invm,

Большое спасибо.
1 окт 15, 14:53    [18221040]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить