A character set is specified in Firebird to define which characters are allowed in a CHAR, VARCHAR or BLOB field. It also provides collation options when Firebird needs to sort a column.
Character sets and their collations need to be considered very carefully when defining the database metadata. For those with little previous experience with character sets, we strongly recommend first reading the following articles:
and, depending on your database version:
Character sets can be defined for the database (default character set):
or for domains and fields (where the collation can also be specified):
Declaring character sets on the client side is explained in detail in the Database Technology article, Character sets and Unicode in Firebird.
SET NAMES specifies the character set to use for subsequent database attachments in an application. It enables the server to translate between the default character set for a database on the server and the character set used by an application on the client.