» »

utf8 vprašanje

utf8 vprašanje

zhigatsey ::

Živjo,

Malo študiram unicode in utf itd... pa sem prišel do tega...
Z utf8 lahko prikažeš katerikoli unicode znak... Velikost
se pa spreminja in sicer za latin 1 znake oz. latin 2 znake
je dovolj en byte, za npr. grščino ali pa cirilico pa sta potrebna 2 byte-a itd...
Na strani unicode standarda pa sem dobil en source za pretvarjanje
med utf zapisi in tam je tip utf8 predstavljen kot typedef unsigned char UTF8;
Torej je to en byte. Kako bi zapisal v ta en byte znak v cirilici ali grščini, če rabiš za to 2 byte-a..
To mi ni jasno..


HVala za odgovore

Gundolf ::

UTF8 string je zaporedje čisto običajnih 8bitnih bajtov. Pri tem pa je lahko en znak predstavljen z enim, dvema, ali večimi bajti.

zhigatsey ::

Če še malo naprej vprašam....

Recimo nekatere standardne funkcije kot sta remove ali pa rename iz cstdio...
Obedve vzameta za parametere const char*...
Kako bi recimo uporabil ti dve funkciji z wstringom v katerem imaš unicode, ali pa utf8, 16, 32 ime datoteke...
Bi moral najprej pretvoriti v navaden string? Kako pa bi pretvoril? Glede na locale sistema?
Verjetno moraš uporabiti wcstombs, ki je odvisen od naštimanega locale sistema, ali kaj podobnega?

Gundolf ::

standardne c in c++ funkcije delajo nad znaki, ki imajo vsi enako dolgo predstavitev. Npr, v primeru stringa je to char, v primeru wstringa pa wchar_t (ki mislim da nima predpisane velikosti). S temi standardnimi funkcijami ne moreš delati s sistemi, ki predvidevajo variabilno dolžino znakov. Ampak, ti lahko vedno z neko svojo funkcijo prebereš UTF8 in ga shraniš v wstring. Še bolje, ziher se da najti na netu zastonjsko knjižnico, ki to naredi zate. Če ne drugje, mislim da v Boostu so neke funkcije za delo z unicodom.

Kolko ti pa zna c++ s svojimi locali pretvarjat med različnimi sistemi pa pojma nimam. Locali so v glavnem zaradi sortiranja pa predstavitve številk in podobnega.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C++] charset-a

Oddelek: Programiranje
71000 (857) SasoS
»

aspx preberm HTML strani

Oddelek: Programiranje
111510 (1374) Senzacionale
»

utf-8 in dolzina polja v mysql

Oddelek: Izdelava spletišč
103765 (3515) tmz
»

[C++] Slovenski znaki v Command Promptu

Oddelek: Programiranje
133432 (3136) Makronaut
»

[C++] Unicode, Utf...

Oddelek: Programiranje
61592 (1475) Matako

Več podobnih tem