Forum » Programiranje » c++ šumniki
c++ šumniki
alexxxx ::
Evo pojavil se mi je še zadnji problem shranjevanje šumnikov v datoteko. Torej šumniki se shranjujejo kot ANSI jas pa hočem da se shranijo kot UTF-8 saj drugače ne delajo. Lahko jih normalno vpisujem vendar morem nato datoteko odpreti dati kodiranje na UTF-8 rad bi da vse skupaj poteka avtomatsko. Če pa spremenim šumnike v samem programu (glej tukaj klik) pa mi v datoteko shrani take čačke ź ¬ ç ć § ¦ torej kako odpreti in shraniti datoteko v c++ tako da bo ta datoteka v UTF-8 formatu?
Ps google ni našel kaj pametnega
pps zelo fajn bi blo da se "deklarira" taka datoteka, drugače bom moral spreminjati cel program (cca 2000 vrstic kode )
Ps google ni našel kaj pametnega
pps zelo fajn bi blo da se "deklarira" taka datoteka, drugače bom moral spreminjati cel program (cca 2000 vrstic kode )
BlueRunner ::
C je nizkonivojski jezik. Kot takšen nima pojma o UTF-jih ali kakšnih kodnih tabelah.
Uporabiti boš moral katero izmed namenskih knjižnic za uporabo Unicode. Če si pametno uporabljal C++ abstrakcijo, sprememb ne bi smelo biti preveč. Če pa ne, potem pa pač ne.
Ena izmed knjižnic, ki jo morda lahko izkoristiš, je ICU.
Uporabiti boš moral katero izmed namenskih knjižnic za uporabo Unicode. Če si pametno uporabljal C++ abstrakcijo, sprememb ne bi smelo biti preveč. Če pa ne, potem pa pač ne.
Ena izmed knjižnic, ki jo morda lahko izkoristiš, je ICU.
BlueRunner ::
Hmm... ali sploh razumeš na katerem nivoju je gol C/C++ (zakaj se mu reče nizko nivojski) in kaj je Unicode (UTF)?
Oziroma, daj raje povej od kje dobiš te šumnike, ki jih želiš shraniti v datoteko. V kateri kodni tabeli jih imaš pa zapisane v pomnilniku?
Oziroma, daj raje povej od kje dobiš te šumnike, ki jih želiš shraniti v datoteko. V kateri kodni tabeli jih imaš pa zapisane v pomnilniku?
Zgodovina sprememb…
- spremenilo: BlueRunner ()
Matako ::
Rabiš nekaj v stilu http://www.chilkatsoft.com/charset-libr..., delati to iz 0 je nehvaležno opravilo, ker je UTF8 UNICODE zapis in torej imaš potencialno tisoče kod in še druge fore (kombinacije).
Tudi ko boš enkrat uspel konvertirati nek določen s kodnimi tabelami razširjen ASCII niz ne pozabi dveh osnovnih lastnosti UTF-8
1. UTF8 Kode 0-127 so enake ASCII (7-bit) kodam. To je največji časr UTF8: kompatibilen je z ASCII.
2. Vsi ostali znaki so multi-byte! To zadnje ima za posledico, da ti bo strlen() ipd. funkcije v splošnem vrnil število _bajtov_ in _ne_ znakov. Se pravi še vedno boš pravilno alociral pomnilnik, ne boš pa na ta način dobil logične dolžine niza, za to uporabi utf8 funkcije (spet knjižnica). Je pa UTF8 dovolj zvito zamišljen, da je vedno za vsak byte v nizu jasno ali je nadaljevanje multi-byte sekvence ali je začetni/samostojni znak. To je recimo drugi čar UTF8 ;)
Tudi ko boš enkrat uspel konvertirati nek določen s kodnimi tabelami razširjen ASCII niz ne pozabi dveh osnovnih lastnosti UTF-8
1. UTF8 Kode 0-127 so enake ASCII (7-bit) kodam. To je največji časr UTF8: kompatibilen je z ASCII.
2. Vsi ostali znaki so multi-byte! To zadnje ima za posledico, da ti bo strlen() ipd. funkcije v splošnem vrnil število _bajtov_ in _ne_ znakov. Se pravi še vedno boš pravilno alociral pomnilnik, ne boš pa na ta način dobil logične dolžine niza, za to uporabi utf8 funkcije (spet knjižnica). Je pa UTF8 dovolj zvito zamišljen, da je vedno za vsak byte v nizu jasno ali je nadaljevanje multi-byte sekvence ali je začetni/samostojni znak. To je recimo drugi čar UTF8 ;)
/\/\.K.
Zgodovina sprememb…
- spremenil: Matako ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Unicode decodeOddelek: Programiranje | 1960 (1418) | Randomness |
» | Unicode 8.0.0 prinaša več kot sedem tisoč novih znakovOddelek: Novice / Ostala programska oprema | 35451 (29930) | johnnyyy |
» | Nadgradnja softvera in zato problemi s šumnikiOddelek: Operacijski sistemi | 2850 (2542) | zeutrino |
» | [C++] Slovenski znaki v Command PromptuOddelek: Programiranje | 3328 (3032) | Makronaut |
» | kodna tabelaOddelek: Programiranje | 4184 (3998) | BlueRunner |