https://github.com/alexxit/intlist
Кодирование массива integer для передачи в качества GET-параметра
https://github.com/alexxit/intlist
Last synced: 10 months ago
JSON representation
Кодирование массива integer для передачи в качества GET-параметра
- Host: GitHub
- URL: https://github.com/alexxit/intlist
- Owner: AlexxIT
- Created: 2017-03-16T13:20:52.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-16T13:26:31.000Z (over 9 years ago)
- Last Synced: 2025-02-05T16:17:18.558Z (over 1 year ago)
- Language: Python
- Homepage:
- Size: 2.93 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# intlist
Кодирование массива `integer` для передачи в качества GET-параметра.
Коридование по аналогии с UTF-8: https://ru.wikipedia.org/wiki/UTF-8
Используется алфавит URI Unreserved Characters - 64 символа, позволяющих
закодировать по 6 байт: https://en.wikipedia.org/wiki/Percent-encoding
```
Байт Бит Шаблон полностью
1 5 --0xxxxx (2^5 = 32)
2 10 --10xxxx --xxxxxx (2^10 = 1024)
3 15 --110xxx --xxxxxx --xxxxxx (2^15 = 32768)
4 20 --1110xx --xxxxxx --xxxxxx --xxxxxx (2^20 = 1048576)
```
Можно доработать до поддержки 2^35.
Несколько примеров работы функции `intlist.encode_diff`:
```
1,3,5,31,32,33,40,80,130,200 (28)
BCCaBBHgogyhG (13)
9108,14092,14090,14093,14094,14091,14095,14100,14044,9212,13928,13929,13932,13935,13933,13936,13939,13940,13988,9019,9160,9161,13974 (132)
yM7hZg0BgzxJsBDBCBDBgiOg4guBBBBBF (33)
784,785,782,638,786,787 (23)
p-iQCBBB (8)
```