From: Jim Monty (jim.monty@yahoo.com)
Date: Wed Nov 03 2010 - 17:20:44 CST
Doug Ewell wrote:
> Jim Monty <jim dot monty at yahoo dot com> wrote:
> > Is there a utility, preferably open source and written in C, that inspects
> > UTF-16/UTF-16BE/UTF-16LE text and identifies broken surrogate pairs and
>illegal
>
> > characters? Ideally, the utility can both report illegal code units and
>"repair"
>
> > them by replacing them with U+FFFD.
>
> What's an "illegal" character, for purposes of this exercise? Do you
> mean a noncharacter, or something else?
I mean the sixty-six code point Unicode reserves as noncharacters (e.g.,
U+FFFE).
http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Noncharacters
But I'm most keenly interested in a utility that detects broken UTF-16 surrogate
pairs. By this, I mean a 16-bit code unit in the range from 0xD800 thru 0xDBFF
not immediately followed by a 16-bit code unit in the range from 0xDC00 thru
0xDFFF, and vice versa.
http://en.wikipedia.org/wiki/UTF-16/UCS-2#Encoding_of_characters_outside_the_BMP
I need to repair broken UTF-16 text that some software (e.g., GNU iconv) and
programming languages (e.g., Perl) choke on. See this discussion of the topic on
PerlMonks.
http://www.perlmonks.org/?node_id=719833
Jim Monty
This archive was generated by hypermail 2.1.5 : Wed Nov 03 2010 - 17:42:05 CST