it depends on how you define the field. if it is defined as field1 char(25) then the field lenght is 25 no matter what data you put in it. if you define the field as varchar(25) then the field lenght is the size of the text that you put in it. It does not place blanks.
In my test example, I included ten spaces after the word Long for this statement:
insert into showVarchar values (2, 'Long ');
Somehow it appears to have been truncated to a single blank in the post. But notice your tests still show 5 characters not 4 for this string - proving my point that the trailing space(s) are stored, though a bit less obvious than I intended.