+3.13 UTF-8 Strings in SILC
+
+By default all strings that are sent in SILC protocol MUST be UTF-8
+[RFC3269] encoded, unless otherwise defined. This means that any string
+sent inside for example, command, command reply, notify or any packet
+payload is UTF-8 encoded. Also nicknames, channel names, server names,
+and hostnames are UTF-8 encoded. This definition does not affect
+messages sent in SILC, as the Message Payload provides its own mechanism
+to indicate whether a message is UTF-8 text message, data message, which
+may use its own character encoding, or pure binary message [SILC2].
+
+Certain limitations are imposed on the UTF-8 encoded strings in SILC.
+The UTF-8 encoded strings MUST NOT include any characters that are
+marked in the Unicode standard as control codes, noncharacters,
+reserved or private range characters, or any other illegal Unicode
+characters. Also the BOM (Byte-Order Mark) MUST NOT be used as byte
+order signature in UTF-8 encoded strings. A string containing these
+characters MUST be treated as malformed UTF-8 encoding.
+
+The Unicode standard defines that malformed sequences shall be signalled
+by replacing the sequence with a replacement character. Even though,
+in case of SILC these strings may not be malformed UTF-8 encodings
+they MUST be treated as malformed strings. Implementation MAY use
+a replacement character, however, the character Unicode standard defines
+MUST NOT be used, but another character must be chosen. It is, however,
+RECOMMENDED that an error is returned instead of using replacement
+character if it is possible. For example, when setting a nickname
+with SILC_COMMAND_NICK command, implementation is able to send error
+indication back to the command sender. It must be noted that on server
+implementation if a character sequence is merely outside of current
+character subset, but is otherwise valid character, it MUST NOT be
+replaced by a replacement character.
+
+On user interface where UTF-8 strings are displayed the implementation
+is RECOMMENDED to escape any character that it is unable to render
+properly. The escaping may be done for example as described in
+[RFC2253]. The escaping makes it possible to retrieve the original
+UTF-8 encoding. Alternatively, a replacement character may be used
+if it does not cause practical problems to the implementation.
+
+
+.ti 0
+3.13.1 UTF-8 Identifier Strings
+
+Identifier strings are special strings in SILC protocol that require
+more careful processing, than the general UTF-8 strings described in the
+previous section. These strings include the nicknames, channel names,
+server names, hostnames and some other identifier strings. These strings
+are prepared using the stringprep [RFC3454] standard. The Appendix A
+defines the stringprep profile for SILC identifier strings and conforming
+implementation MUST use the profile to prepare any identifier string.
+
+The stringprep profile describes how identifier strings are prepared,
+what characters they may include, and which characters are prohibited.
+Identifier strings with prohibited characters MUST be treated as
+malformed strings.
+
+Because of the profile the identifier strings in SILC may generally
+include only letters, numbers, most punctuation characters, and some
+other characters. For practical reasons most symbol characters and
+many other special characters are prohibited. All identifier strings
+are case folded and comparing the identifier strings MUST be done as
+caseless matching. Also, identifier strings may not include any
+commas (','), '@', '!' or any wildcard characters, as defined in the
+stringprep profile in Appendix A.
+
+In general, the identifier strings does not have a maximum length.
+However, the length of a nickname string MUST NOT exceed 128 bytes, and
+the length of a channel name string MUST NOT exceed 256 bytes. Since
+these strings are UTF-8 encoded the length of one character may be
+longer than one byte. This means that the character length of these
+strings may be shorter than the maximum length of the string in bytes.
+The minimum length of an identifier string MUST be at least one character,
+which may be one byte or more in length. Implementation MAY limit the
+maximum length of an identifier string, with exception of the nickname
+and channel name strings which has the explicit length definition.
+
+
+.ti 0
+3.14 Backup Routers