Nekoliko korisnih unicode i lokalizacijskih libsa većinom za C, te FAQ za Unix/Linux
(prekopirao iz svog podsjetnika, zato su natuknice ispod prilično subjektivne, možda i netočne, pa ih uzmite s rezervom)
ICU library
http://site.icu-project.org
• velika C, C++, Java biblioteka, kompletno rješenje za lokalizaciju
• IMHO dokumentacija nije baš dobra, doxygen API referenca
utf8proc
http://www.public-software-group.org/utf8proc
• C i Ruby
MicroUTF-8
http://puszcza.gnu.org.ua/software/microutf8
• vrlo jednostavno, samo 4 funkcije, dokumentacija u headeru
libiconv
http://www.gnu.org/software/libiconv/
• C biblioteka (i programčić iconv) za konverzije stringova iz/u unicode
• podržava mnogo (sve?) kodnih stranica
• podržava transliteraciju (ako u kodnoj stranici ne postoji znak, pronađe najsličniji, npr. Č pretvori u C)
• dio glibc biblioteke
• samo unixoidi
• pod windowsima treba Cygwin, GnuWin32 i sl.
UTF8-CPP
http://utfcpp.sourceforge.net/
• C++ biblioteka
• koristi STL algoritme, iteratore, vektore i sl.
• na prvi pogled izgleda komplicirano
--------------------------------------------------------
UTF-8 and Unicode FAQ for Unix/Linux
http://www.cl.cam.ac.uk/~mgk25/unicode.html
--------------------------------------------------------
Jednostavna C strlen funkcija za utf8:
(standardni strlen nije za utf8 stringove, jer će vratiti ukupan broj bajtova, a to nije točno kod utf8 s obzirom na to da su utf8 znakovi predstavljeni s jednim ili više bajtova)
Kod: Označi sve
int strlenUTF8(char *s)
{
int a = 0, b = 0;
while (s[a])
{
if ((s[a] & 0xc0) != 0x80)
b++;
a++;
}
return b;
}