Question: So, where can unsigned char be useful?
If I understood right, unsigned char can represent numbers from -128 to 127. But every encoding table uses positive numbers. So, unsigned char can't be used for representing characters. Am I right?

Answer: 
No, unsigned char is 0 to 255.

It can be useful in representing binary data (a single byte), although, like any primitive data type, the possibilities are endless.
Unsigned char is used to represent bytes. If you need just one byte of memory in a variable, you use unsigned char and assign an integer to it.

fo example, there is used uint8\_t to represent bytes, but is not more than that.