For String encoding, you can find the info on the wiki of the ShumiTranslator tool done by HobbitDur which detail the following file (link is kept here to the old wiki for archive purpose):

String Encoding

FF8 strings are converted to byte arrays.Char Table Some of which aligns to the grid of text in the texture if you -32 from the value. Some values are 1 byte = 2 characters, most are 1 byte = 1 character. There are also special bytes that use up 1-3 bytes.

Special Bytes

These bytes are points where things are inserted or a change in formatting. Some just say to ignore this string unless the player unlocked something.

Starting Byte

Size

Name

Description

0x00

1

NULL

End of string

0x02

1

\n

Inserts new line Some areas ignore this character.

0x03

2

Name

When see 0x03??, in a string, it's usually a characters name.

0x05

2

Icon

0x05?? used to draw a symbol from icons.tex, like controller buttons. On PC it draws the letter of keyboard keys assigned to the controls.

0x06

2

Color

0x06?? used to show a change in formatting like color

0x0A

2

Special_Value

0x0A?? can be a string or number value. Depending on which string you are reading it can be a different value.

0x0B

2 or 3

Cursor_Locations

Might be number of possible return values that determine whether this is 3 or 2 bytes. Like YES or NO questions will only be 2 bytes
but screens with a list of multiple selections will will use 3 bytes.

0x0C

2

SpellID

Used to place a name of a spell.