powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кодировка при получении ответа с HTTP сервера в MS SQL
2 сообщений из 2, страница 1 из 1
Кодировка при получении ответа с HTTP сервера в MS SQL
    #39634350
Коляндер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. MS SQL 2014 Получаю данные с сервера при помощи sp_OACreate 'WinHttp.WinHttpRequest.5.1' В ответе все русские буквы выглядят как знаки вопроса ???
Поле ответа сделал в NVARCHAR(4000)
С сервера возвращаются UTF-8
Понятно что дело в кодировке, но когда я делаю полю ответа COLLATE SQL_Latin1_General_CP850_Bin или любую другую, ничего не меняется.

Очень прошу помощи
...
Рейтинг: 0 / 0
Кодировка при получении ответа с HTTP сервера в MS SQL
    #39634411
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коляндер,

Изучайте:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
declare @h int, @hr int;

declare @t1 table (s nvarchar(max));
declare @t2 table (s varchar(max) collate Latin1_General_CI_AS);
declare @t3 table (s varchar(max) collate Cyrillic_General_CI_AS);

exec @hr = sp_OACreate 'WinHttp.WinHttpRequest.5.1', @h output;
if @hr <> 0 exec sp_OAGetErrorInfo @h;

exec @hr = sp_OAMethod @h, 'Open', null, 'GET', N'https://www.mos.ru', 'false';
if @hr <> 0 exec sp_OAGetErrorInfo @h

exec @hr = sp_OAMethod @h,'Send';
if @hr <> 0 exec sp_OAGetErrorInfo @h;

insert into @t1
 exec @hr = sp_OAGetProperty @h, N'ResponseText';
if @hr <> 0 exec sp_OAGetErrorInfo @h;

insert into @t2
 exec @hr = sp_OAGetProperty @h, N'ResponseText';
if @hr <> 0 exec sp_OAGetErrorInfo @h;

insert into @t3
 exec @hr = sp_OAGetProperty @h, N'ResponseText';
if @hr <> 0 exec sp_OAGetErrorInfo @h;

exec @hr=sp_OADestroy @h;
if @hr <> 0 exec sp_OAGetErrorInfo @h;
   
select substring(s, charindex('<title', s), charindex('<title', s) + 100) from @t1 where s like '%charset=UTF-8%';
select substring(s, charindex('<title', s), charindex('<title', s) + 100) from @t2 where s like '%charset=UTF-8%';
select substring(s, charindex('<title', s), charindex('<title', s) + 100) from @t3 where s like '%charset=UTF-8%';
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кодировка при получении ответа с HTTP сервера в MS SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]