A little best practice for content developers out there.
Problem: Characterstrings that are passed via SCORM runtime calls are restricted to characters int he ISO 10646 standard (which is equivalent to Unicode character set). Technically this includes many control and other non-printable characters. These special characters often result from compression algorithms that content developers use to shrink the data they wish to save into the space allocated by the suspend data field. According to SCORM, these characters are perfectly valid, but if you want to create content that is compatible across LMS’s it is probably best to avoid using non-standard characters.
Reason: It is common to come across LMS’s that don’t handle these characters well. There are many traps in code that make it easy to overlook errors that arise from special characters, but the most common problem stems from XML. Many LMS’s use XML at some point in the data transfer and persistence process. Unfortunately, XML does not allow some special characters, even when they are seemingly properly encoded. According to the XML spec, the ASCII control characters (0-31) are illegal in XML, except for 9, 10, and 13 (Tab, LF, and CR, respectively).
Best Practice: Content developers, avoid using special characters if you want to have truly compatible content. LMS developers, make sure you test your product with the non-printable characters because you will be seeing them.