|
перекодировка текста в 1С 8 | ☑ | ||
---|---|---|---|---|
0
novichok79
30.05.18
✎
11:49
|
доброе время суток, уважаемые друзья. есть нетленочка с куртизанками и преферансом на базе БСП 2.4.2.124. в нетленочке запилен поиск контрашей (контрагентов) по сервису dadata.ru, но у dadata.ru 28-го мая какой-то трэш творился с обновлением базы данных сайта.
есть еще https://egrul.nalog.ru/ запилил получение капчи, значения с сайта возвращаются, но в непонятной кодировке, не utf-8. есть ли способ быстро перекодировать текст в 1С? через двоичныеданные, а потом получение потока для ЧтенияJSON получаются дважды закодированные символы. в других нетленочках все делается так MSScriptControl = Новый COMОбъект("MSScriptControl.ScriptControl"); MSScriptControl.Language = "javascript"; Стрим = Новый COMОбъект("ADODB.Stream"); Стрим.Open(); MSScriptControl.Eval("Стрим.Write(Соединение.responseBody)"); но, к счастью, у меня сервак на каком-то linux'е, там вот эта дичь отсутствует Стрим = Новый COMОбъект("ADODB.Stream"); что я делаю не так? есть ли аналоги в 1С. заранее благодарю за помощь. |
|||
1
novichok79
30.05.18
✎
12:06
|
опять же
Книга знаний: Перекодировщик из UTF-8 в Windows-1251 и обратно но надо сделать это средствами платформы 8.3.11 |
|||
2
novichok79
30.05.18
✎
12:13
|
возвращает такую строку в 1С
{"ERRORS":{"ogrninnfl":["ÐÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑказаÑÑ ÐÐÐ ÐÐРили ÐÐРиндивидÑалÑного пÑедпÑинимаÑелÑ"]}} если переводим из ISO-8859-1 в utf-8 в онлайне получается такое {"ERRORS":{"ogrninnfl":["Необходимо указать ОГРНИП или ИНН индивидуального предпринимателя"]}} |
|||
3
hhhh
30.05.18
✎
12:18
|
(1) ссылка не читается
|
|||
4
novichok79
30.05.18
✎
12:20
|
(3) движок мисты видимо ее конвертнул. но там тоже через adodb.stream сделано
|
|||
5
singlych
30.05.18
✎
12:25
|
ммм, а если записать в txt а потом ЧтениеJSON.ОткрытьФайл(ИмяФайла, Кодировка)?
|
|||
6
novichok79
30.05.18
✎
12:27
|
ну в интернетах предлагают делать через ЧтениеТекста
|
|||
7
mistеr
30.05.18
✎
12:34
|
(2) То, что ты показал, очень похоже на UTF-8. Возможно, byte order не тот, что ожидает 1С.
|
|||
8
hhhh
30.05.18
✎
12:39
|
(6) мне надо было только русские буквы, я сделал тупо
Для ии = 1 По СтрДл Цикл КодСимв = КодСимвола(сред(Стр, ии, 1)); Если КодСимв >= 192 И КодСимв <= 255 Тогда Рез2 = Рез2 + Символ(КодСимв + 848); |
|||
9
novichok79
30.05.18
✎
12:42
|
(7) уже неважно, через выгрузку результата HTTP запроса во временный файл все взлетело.
|
|||
10
mistеr
30.05.18
✎
12:55
|
(9) Потому что в файл пишется BOM.
|
|||
11
novichok79
30.05.18
✎
12:56
|
(10) значит действительно верно предположение в (7)
|
|||
12
mistеr
30.05.18
✎
12:57
|
Вообще идиотизм, конечно. До сих пор желто-красные не могут нормальные потоки и конвейер реализовать. В куче ситуаций приходится сохранять во временные файлы.
|
|||
13
novichok79
30.05.18
✎
12:58
|
(12) это да, но по сравнению с 8.1 уже прогресс, что можно сделать почти все через типовые механизмы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |