Following on from David Kemper's mqtt-comment on CSPRD02 the TC agreed to open this Jira to explore the relaxing of the MUST level requirements surround UTF-8 checking
Servers are required to scan the UTF-8 content of all strings in all packets. Since the strings themselves are bounded by a length prefix, is it possible that the following MUST level clauses could downgraded to SHOULD / SHOULD NOT to promote lower-latency solutions?
[MQTT-1.5.3-1] The character data in a UTF-8 encoded string MUST be well-formed UTF-8 as defined by the Unicode specification [Unicode] and restated in RFC 3629[RFC3629]. In particular this data MUST NOT include encodings of code points between U+D800 and U+DFFF. If a Server or Client receives a Control Packet containing ill-formed UTF-8 it MUST close the Network Connection.
[MQTT-1.5.3-2] A UTF-8 encoded string MUST NOT include an encoding of the null character U+0000. If a receiver (Server or Client) receives a Control Packet containing U+0000 it MUST close the Network Connection.