Using the UTF8 character set for VARCHAR(N) fields needs to reserve enough space for any N UTF8 characters. The length of one such character may be between 1 and 4, so the only safe thing is to allow for N characters of length 4 each, meaning there needs to be space for 200 bytes to store the 50 characters (worst-case condition).
You could use the FlameRobin tool to have a look at the internals. Let's assume you have a table
CREATE TABLE "TableÅÄÖåäö"
(
"ColÅÄÖåäö" Varchar(50)
);
in a database with default character set UTF8. (Note that you need at least Firebird 2.0 for this.)
The system tables store information about all relations and their fields. In the system table RDB$RELATION_FIELDS there is a record for this field, which has (for example) RDB$1 as the RDB$FIELD_SOURCE. Looking into RDB$FIELDS there is one record for RDB$1, and its value of RDB$FIELD_LENGTH is 200.
So to answer your question: To have a UTF8 column with space for 255 characters you enter it as VARCHAR(255), but in the database it will have a size of 1220 bytes.