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: 
First of all, what you are representing is `signed char`, `unsigned char` ranges from 0 - 255.

To answer your questions about negative valued character, you are right that character encoding is done using positive values.

On a different view, just think of `signed` and `unsigned char` as integer representation.
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.