An open API service indexing awesome lists of open source software.

https://github.com/alexxit/intlist

Кодирование массива integer для передачи в качества GET-параметра
https://github.com/alexxit/intlist

Last synced: 10 months ago
JSON representation

Кодирование массива integer для передачи в качества GET-параметра

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)
```