ucs-2 to utf-8 ?
Martin `MJ' Mares
mj na ucw.cz
Sobota Únor 3 18:24:17 CET 2001
Zdravim!
> Nebo, nemeli byste nekdo aspon popis utf-8? Uz to pul dne hledam jako blazen...
> ... ach jo..
RFC 2279
Jinak poslouzi napriklad nasledujici makra:
#define UNI_REPLACEMENT 0xfffc
#define PUT_UTF8(p,u) do { \
if (u < 0x80) \
*p++ = u; \
else if (u < 0x800) \
{ \
*p++ = 0xc0 | (u >> 6); \
*p++ = 0x80 | (u & 0x3f); \
} \
else \
{ \
*p++ = 0xe0 | (u >> 12); \
*p++ = 0x80 | ((u >> 6) & 0x3f); \
*p++ = 0x80 | (u & 0x3f); \
} \
} while(0)
#define GET_UTF8_CHAR(p,u) do { \
if (*p >= 0xf0) \
{ /* Too large, use replacement char */ \
p++; \
while ((*p & 0xc0) == 0x80) \
p++; \
u = UNI_REPLACEMENT; \
} \
else if (*p >= 0xe0) \
{ \
u = *p++ & 0x0f; \
if ((*p & 0xc0) == 0x80) \
u = (u << 6) | (*p++ & 0x3f); \
if ((*p & 0xc0) == 0x80) \
u = (u << 6) | (*p++ & 0x3f); \
} \
else \
{ \
u = *p++ & 0x1f; \
if ((*p & 0xc0) == 0x80) \
u = (u << 6) | (*p++ & 0x3f); \
} \
} while (0)
Have a nice fortnight
--
Martin `MJ' Mares <mj na ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
IBM = Industry's Biggest Mistake
Další informace o konferenci Linux