Chyba v triedeni cs_CZ & sk_SK

Miloslav Trmac mitr na volny.cz
Čtvrtek Květen 29 12:48:22 CEST 2003


On Thu, May 29, 2003 at 12:22:45PM +0200, Ing. Pavel PaJaSoft Janousek wrote:
> 	Ehm - muzete mi rici tedy jak konkretne normy jazyka C a C++
> pocitaci s UNICODE? Z Vaseho popisu totiz vyplyva - svet WinAPI je
> trubka, protoze pouziva sve oberlicky a ne standardni zpusoby; muzeme
> pouzit wide chars, ale nemame imicitne zaruceno, ze to znamena praci s
> UNICODE znaky...
Muj nazor je: nedelejte to. Unicode je velky a slozity standard
a starat se o takove veci, ze \'a muze byt zapsano jako jeden znak
nebo dva a pritom jsou ekvivalentni, nebo o to, ze soubor by na zacatku
mel mit byte order mark, je spousta prace ktera se IMHO nevyplati.

Od normalniho programu osobne cekam, ze s textem bude schopen rozumne
pracovat bez zbytecnych zmen formatu a ne ze mi treba fold zkonvertuje
text do nejake "normalni formy".

Pokud opravdu chcete byt explicitne zavisly na unicode, nic Vam nebrani
pouzivat pro ukladani znaku uint32_t a pracovat v UCS-4
nebo pouzivat striktne UTF-8 (jako GLib a GTK2).

Pro "normalni" praci s textem bohate staci pracovat s char *,
mblen () atd. Pokud s textem program pracuje opravdu hodne, muze
pouzit wchar_t.

To, ze norma jazyka C nezarucuje pouziti ISO 10646 neni moc prekvapive,
ona nezarucuje skoro nic :-). Nejaky stary Borlandi kompilator definoval
	typedef char wchar_t;

Nicmene pokud jste v programu ochoten
predpokladat ASCII-kompatibilni znakovou sadu (napr. ze obsahuje
znak $, nebo ze 'Z' == 'A' + 25), muzete asi predpokladat i to, ze 
char_t je UCS-2 nebo UCS-4 v byte-order dane implementace.
	Mirek


Další informace o konferenci Linux