Corrigenda to the Unicode Standard
The table of corrigenda shows the complete list of formal corrigenda to versions of the Unicode Standard.
Table of Corrigenda
The table lists each corrigendum on the left and then states the relevant information about that corrigendum. The column with the effective date also lists the Unicode Technical Committee action and/or Public Review Issue (PRI) that led to its creation in brackets following the date.
The applicable versions column lists the range of Unicode versions relevant to a particular corrigendum. An implementation claiming conformance to any version of Unicode in that range may also claim conformance to one or more of the corrigenda applicable to that version. References to versions with applied corrigenda can be made as shown at Unicode References.
Corrigenda are fixed in the Unicode Standard at the first available release opportunity. For each corrigendum, the Unicode version in which it was fixed and the date of the release of that version are also shown in the table. Implementations which claim conformance to that fixed version (or later) need not separately reference a corrigendum, as the error has already been corrected in the standard. The final column in the table lists the relevant chapter, Unicode Standard Annex (UAX), or data file from the Unicode Character Database where the results of the correction are documented.
Each version of the Unicode Standard, once published, is absolutely stable and will never change. Implementations or specifications that refer to a specific version of the Unicode Standard can rely upon this stability. However, if those implementations or specifications are upgraded to a later version of the Unicode Standard, then of course some changes may be necessary to account for changes in Unicode between versions: addition of new characters, addition of new properties, specification of new algorithms, and so on.
Occasionally an error is found in a particular version of the Unicode Standard which is of sufficient importance that the UTC issues a formal corrigendum notice, prior to the release of the subsequent version of the standard. Corrigenda are limited in number; the entire list of such notices is specified in the table on this page. A formal corrigendum notice does not change the contents of any previously published versions of the standard. Instead, it provides a mechanism whereby an implementation, protocol, or other standard can cite or claim conformance to an existing version of the Unicode Standard with the corrigendum applied. This may be required in particular instances when an implementation, protocol, or standard otherwise supports a particular version of the Unicode Standard, but for security or interoperability reasons must apply a particular critical fix.
In a reference or claim of conformance to a particular version of the Unicode Standard, if the citation does not specifically mention a corrigendum, then the corrigendum does not apply for that reference or conformance claim.
All corrigenda must be in compliance with the Unicode Character Encoding Stability Policy. Corrigenda are reviewed and approved by the Unicode Consortium officers to ensure compliance with that policy. See also the FAQ on Normalization for more information about stability considerations and normalization.
In some instances, particularly for protocols making use of Unicode normalization, an implementation may have requirements to maintain complete stability in an algorithm. This may extend even to the retention of known errors and the non-application of corrigenda.
The file NormalizationCorrections.txt in the Unicode Character Database was introduced to assist in maintaining stability for implementations, by clearly identifying any data changes impacting normalization, with the exact changes in decomposition mappings and the exact versions for the changes. Any corrigendum to the Unicode Standard which changes a decomposition mapping in any way is then also reflected into NormalizationCorrections.txt, so that an implementation can track the exact status of any such changes. An implementer can then either apply the corrigendum to an earlier version of the standard (the normal case), or can choose not to apply the results of the corrigendum when moving an implementation forward to a later version of the standard (the exceptional case).
Implementers should be cautious when choosing the latter option, as it puts them formally out of compliance with later versions of the Unicode Standard and reduces their interoperability with implementations that have upgraded to later versions. However, in limited contexts where the overriding concern is backwards compatibility in the protocol itself, maintenance of an older, uncorrected form of Unicode normalization might be warranted.
Where possible, however, implementers are encouraged to adopt the most up-to-date and correct version of the Unicode Standard compatible with their application needs.