- From: Rick Cameron <Rick.Cameron@crystaldecisions.com>
- Date: Fri, 14 Sep 2001 12:42:42 -0700
- To: html-tidy@w3.org
- Cc: Terry Teague <terry_teague@users.sourceforge.net>
I've just submitted this problem at the SourceForge site. Thanks - rick -----Original Message----- From: Rick Cameron [mailto:Rick.Cameron@crystaldecisions.com] Sent: Fri, 14 September 2001 11:59 To: html-tidy@w3.org Cc: Terry Teague Subject: Problem processing Shift-JIS Hi, all I believe the code in tidy.c (revision 1.35) that reads Shift-JIS characters has a problem. At line 1040 there appears to be the assumption that any byte value greater than 127 is a lead byte (i.e. the first byte of a two-byte character). I believe this is true of Big5 - but it is certainly not true of Shift-JIS. In the diagram at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnintl/html /S24CF.asp?frame=true you can see that the values from 0xa1 through 0xdf represent singe-byte characters. One way to fix this would be to introduce a rough-and-ready version of the Win32 IsDBCSLeadByte function. For example: static Bool isDBCSLeadByte (uint c, int encoding) { switch (encoding) { case BIG5: return c >= 0x80; case SHIFTJIS: return c >= 0x80 && !(c >= 0xa1 && c <= 0xdf); default: return no; } } Thanks! - rick
Received on Friday, 14 September 2001 15:43:15 UTC