Re: Unicode files ?
Lorenzo Bettini <[email protected]> Sat, 03 Apr 2010 11:57:33 +0200
| Newsgroups | gmane.comp.gnu.source-highlight.general |
|---|---|
| Message-ID | <[email protected]> |
Dario Teixeira wrote: > Hi, > >> the html might bring also bad encoding in the head, but I >> guess it is also due to the fact that source-highlight reads >> two bytes, which in unicode represent a single character, >> and interprets them as two characters instead of one. >> This is unicode, am I right? Sorry for my ignorance, >> but with unicode in a text file every character is >> represented by two bytes, right? > > Nope. There is not one standard Unicode encoding, but several. The most > common one is UTF-8, which is a variable length encoding where each Unicode > character can take from 1 to 4 bytes (originally it was up to 6, but that's > deprecated now). Another variable-length encoding is UTF-16, where each > character can occupy between 2 and 4 bytes. The only fixed-length encoding > is UTF-32 (UCS-4), where each character requires 4 bytes. Oh, then I had got it completely wrong! O:) > >> I'd like to try with wstring and see whether this solves >> something. > > I haven't used C++ in a long time, but isn't wstring based on wchar_t, > which is 2 bytes long? If so, it won't solve anything. There is no > Unicode encoding that uses a fixed-length of 2 bytes! > again, I got it wrong... then now I'm wondering what wchar_t is for, but that's another issue... > Lorenzo, I think we can give you a hand in implementing this. However, > if you read through this entire thread you will notice that the best > course of action is dependent on a crucial piece of information which > you are the most qualified person to provide: we need a list of the > manipulations that Source-highlight applies to strings. well 1. it reads a line from the input source 2. uses boost regex library to match pieces of the line with given language definition regular expressions 3. possibly preprocess some characters depending on the output format (e.g., in html '<' is translated into '<') 4. if no regular expression matched writes the line part to the output 5. if a regular expression matched writes the line part to the output with some "decoration" according to the output format so I guess another big issue is whether boost regex library is able to handle unicode strings, right? Moreover, wchar_t is useless I seem to understand, and a unicode library for C++ is required anyway... Thanks Martin for the url, if anyone else can provide further links they are more than welcome :) cheers Lorenzo -- Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino ICQ# lbetto, 16080134 (GNU/Linux User # 158233) HOME: http://www.lorenzobettini.it MUSIC: http://www.purplesucker.com http://www.myspace.com/supertrouperabba BLOGS: http://tronprog.blogspot.com http://longlivemusic.blogspot.com http://www.gnu.org/software/src-highlite http://www.gnu.org/software/gengetopt http://www.gnu.org/software/gengen http://doublecpp.sourceforge.net