Re: Invalid UTF-8

Adrian Klaver <[email protected]>
Newsgroups gmane.text.yaml.general
Message-ID <[email protected]>
On Thursday 20 August 2009 5:57:56 pm Ben Woolley wrote:
> The main issue here appears to me to be over whether the handling of
> invalid UTF-8 is a display issue.
>
> I argue that it is not a display issue for this simple reason: the
> existence of methods which operate on UTF-8 which have nothing to do
> with display.
>
> Let's look at the effects of dealing with it as a display issue.
> Allowing invalid UTF-8, or allowing a special encoding on top of
> UTF-8, requires that all methods which operate on the UTF-8, and
> therefore need to parse it in some way, need to be aware of this extra
> possible syntax to avoid mangling the string's semantics. You would be
> effectively moving the burden of data entry issues deeper down the
> stack. That would not help UTF-8 awareness at all. It would do the
> opposite.
>
> To put it simply: it is not a display issue, but rather it is a data
> entry issue.
>
> The solution can be simple: You sanitize all user-submitted syntax
> before you send it to a library which operates on that syntax. This
> can be as easy as offering a preview functionality, and stripping out
> invalid UTF-8 or ASCII sequences.
>
> I had to deal with an even worse version of this problem when
> providing an interface for users to edit php smarty templates. The
> smarty would get compiled to php, and smarty syntax errors would
> sometimes result in uncatchable fatal php errors. We simply provided a
> preview functionality, and the problem went away.
>
> However, you do have a secondary point I would like to address. Most
> applications don't do much UTF-8 manipulation, and just use decode().
> This is why it appears to be display issue, and why it is
> understandable and perfectly valid that you would want a library that
> is capable of handling invalid syntax easily.
>
> The problem is that the libraries then become no longer suitable in
> software that actually does a lot of UTF-8 manipulation. You
> effectively move the burden of data entry issues to that class of
> programs, which now need to be intimately aware of the error handling
> properties of the library.
>
> Why not just avoid that problem altogether and write a little wrapper
> library which handles data entry issues the way you want, instead of
> trying to fundamentally change the nature of the library? That would
> be a handy tool which a lot of projects may use. It could even have
> its own library for solving the data entry problem on other tools, and
> your cause could move forward.
>
>

+1 
It is a data issue, pushing it up the stack only prolongs the agony.


-- 
Adrian Klaver
[email protected]

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.