Character storage and rendering is an incredibly complicated beast, because at each stage the issue of what storage format is used has to be taken into account, as well as what character transformations take place and what character mapping procedures are used to go from one character set to another (and there are dozens of them.)
As examples of character transformations, the data might be converted to all upper case, or a member name might be converted to upper/lower case using an initial caps function, which works for Nolan but not for McDonald or ter Horst. And don’t get me started on the McDonald vs MacDonald vs Mac Donald issue, over which wars were probably fought in Scotland.
This may not be a complete list of all the places where character representation could be impacted in the tournament submission process.
Step 1: The TD enters the tournament name into the pairing program used.
Step 2: The pairing program creates the upload file.
Step 3: The upload file is processed and stored in a PostgreSQL database.
Step 4: The event information is displayed on a web browser during the editing phase.
Step 5. The post-web browser data is processed and stored in a PostgreSQL database.
Step 6: The data is transferred from the PostgreSQL database to a MySQL database on the MSA system.
Step 7: The data is displayed on a web browser by the MSA programming.