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.
A **signed** char can represent number from -128 to +127  

and unsigned char is from 0 to 255. 

Altough unsigned is more convenient in many use cases,  

everthing binary-related can be done with signed too:  

0=0, 1=1 ... 127=127, -128=128, -127=129, -126=130 ... -1=255  

Such conversions happens automatically (or, better to say,  

it´s just different interpretation). 

("binary-related" means that a mathematical -2 \* 2 would be possible too with unsigned,  

but make even less sense)