|
winsock
| ☑ |
0
freewind_sd
28.11.17
✎
16:04
|
Здравствуйте.
Сталкивался ли кто ни будь с таким вопросом:
получаю данные по сети с использованием компонента
WinSock.GetData(Буфер,8);
при этом данные складываются в строку в виде UNICODE
при этом если код символа превышает 127, при
КодСимвола(Буфер)
я получаю соответствие юникода 1105 и т.д...
можно ли как то преобразовать в ANSII или получить данные в первоначальном виде?
Спасибо.
|
|
1
Fish
28.11.17
✎
16:17
|
|
|
2
freewind_sd
28.11.17
✎
16:35
|
Подстановкой?
Это грустный вариант...если измениться кодировка в системе соответствие уже не сработает...
мне больше конечно интересно можно ли как то данные без преобразования в юникод получить...ведь по сети уходит и приходит число от 0 до 255, только складывается в строку и в этот момент уже преобразовывается как я понял...
|
|
3
nordbox
28.11.17
✎
16:38
|
почитай, может сам что то напишешь:
|
|
4
oleg_km
28.11.17
✎
18:01
|
можно получить байтами, сохранить в файл и прочитать потом. Но сохранять тоже придется компонентом ADOStream, там несколько заморочено.
|
|
5
freewind_sd
28.11.17
✎
20:56
|
почитай, может сам что то напишешь:
Юникод
Читал...может напишу...через n лет...хотелось бы опыт других услышать...думаю не единственный у кого подобная задача была...
все таки можно ли получить не строкой из компоненты?
WinSock.GetData(Буфер,8) - 8 тип строка, другие типы выдают ошибку...хоть COMSafeArray хоть БуферДвоичныхДанных
|
|
6
freewind_sd
04.12.17
✎
09:15
|
в 1с недавно.
на текущий момент кроме как преобразованием типа
если кодсимвола = 1180 тогда переменная=186
по другому решить не удалось, есть опасение что на машине с другой кодировкой может криво работать...
с файлами не пробовал, наверное тоже работать будет...
еще вариант написать свою компоненту (для 7.7 делал), но это как ни будь потом...
|
|