<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Velmi hezky je to vidět v tab. zde:<br>
<a class="moz-txt-link-freetext" href="https://cs.wikipedia.org/wiki/UTF-8">https://cs.wikipedia.org/wiki/UTF-8</a><br>
<br>
PH<br>
<br>
<div class="moz-cite-prefix">Dne 31.08.2022 v 18:32 Michal Grunt
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:CACR8hZJg91483BB_3WHJj8zwk6p2Xwv3f=VKk3ghj=j4zqwtAA@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="auto">Děkuji za info.
<div dir="auto"><br>
</div>
<div dir="auto">Jestli to dobře chápu a podle toho co jsem si o
tom přečetl tak utf-8 znak začíná znakem 128 a za ním jsou
128+. Pokud je znak vicebajtovy tak je to 128 128+ 128+ atd.
Pokud jdou po sobě dva utf-8 znaky ("ěř" třeba) tak je to 128
128+ 128 128+. Je to tak?</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Dne út 30. 8. 2022 12:58
uživatel Nesvacil Jiri <<a href="mailto:nesvacil@posys.eu"
moz-do-not-send="true" class="moz-txt-link-freetext">nesvacil@posys.eu</a>>
napsal:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">utf-8 se
prave encoduje do ruzne delky. Pouziva se strlen na vraceni <br>
delky v bytech. Je prave problem v cteni z stream, kde
potrebujete <br>
vratit cely znak a ne v pulce.<br>
<br>
Na utf-16 a podobne kodovani zapominame umyslne, je to
prezitek.<br>
<br>
lua by Vam na to mela bezet v pohode. Uvnitr je vse utf-8,
delku vraci <br>
pocet bytu.<br>
<br>
golang se kompiluje do c. To co ma navic je take to reseni s
bufferem a <br>
stringy.<br>
<br>
Jirka<br>
<br>
Dne 30.08.2022 v 10:09 Michal Grunt napsal(a):<br>
> Tak jsem to rozlousknul. Ale stejně v tom mám zmatek snad
ještě větší<br>
> než před tím...<br>
><br>
> Problém byl v tom, že se program spouštěl po bootu jako
služba<br>
> (znakový výstup na konzoli - malý grafický LCD) a asi
neměl k<br>
> dispozici správné systémové proměnné "locale" (a vůbec
nemělo vliv co<br>
> jsem nastavoval přímo v programu příkazem setlocale() ).
Locale jsem<br>
> samozřejmě nastavené měl, když jsem byl přihlášený.
Program spuštěný<br>
> jako služba toto asi neměl k dispozici (nejspíš je nutné
locale<br>
> nastavit nějak globálně). Když jsem v nastavení služby
upravil<br>
> spouštění na "ExecStart=env LANG=cs_CZ.UTF-8
/home/pi/mujprogram" tak<br>
> už to šlape, čeština se zobrazuje a to i bez wchar_t
prostě jenom s<br>
> normálním char přes to, že jsou české znaky dvoubajtové
což samozřejmě<br>
> dělá bordel třeba u strlen... Ideální by to asi bylo
vyřešit pomocí<br>
> wchar, ale na tom mi havaroval fgetws. Zkusím si ještě
pohrát s<br>
> fshort-wchar a mrknu na tu dělitelnost délky bufferu. Ale
co když zase<br>
> bude něco co bude zobrazovat východní jazyky, které jsou
snad 4<br>
> bajtové...<br>
><br>
> "C" jsem zvolil kvůli rychlosti (běží to na RPi Zero 1,
které není<br>
> zrovna nejrychlejší nehledě na to, že to běží na baterii
kde minimální<br>
> zátěž CPU = delší výdrž, Python byl v tomto tragický) i
když jsou s<br>
> tím spojeny některé obtíže.<br>
><br>
> po 29. 8. 2022 v 21:58 odesílatel Michal Vanka <<a
href="mailto:junk.mv@gmail.com" target="_blank"
rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">junk.mv@gmail.com</a>>
napsal:<br>
><br>
>> Jestli to neni tim, ze kodovani UTF-8 neni 16
bitove...<br>
>> Viz:<br>
>> <a href="https://en.wikipedia.org/wiki/UTF-8"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">https://en.wikipedia.org/wiki/UTF-8</a><br>
>><br>
>><br>
>> On Mon, Aug 29, 2022 at 9:31 PM <<a
href="mailto:spam@nagano.cz" target="_blank"
rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">spam@nagano.cz</a>> wrote:<br>
>>> Pripadne mi podezrela kombinace wchar_t a utf8.
Zkuste vyhodit vse 16bitove.<br>
>>> L.<br>
>>><br>
>>> Sent from MailDroid<br>
>>><br>
>>> -----Original Message-----<br>
>>> From: Michal Grunt <<a
href="mailto:michal.grunt@gmail.com" target="_blank"
rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">michal.grunt@gmail.com</a>><br>
>>> To: HW-news <<a
href="mailto:hw-list@list.hw.cz" target="_blank"
rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">hw-list@list.hw.cz</a>><br>
>>> Sent: po, 29 srp 2022 20:27<br>
>>> Subject: fgetws<br>
>>><br>
>>> Jsem v koncích. Lámu si s tím hlavu už několik
hodin. Po překladu (gcc<br>
>>> na RPi) a spuštění to hlásí chybu: Neoprávněný
přístup do paměti<br>
>>> (SIGSEGV)<br>
>>><br>
>>> Havaruje to na fgetws...<br>
>>><br>
>>> Příkaz "mpc status | head -n 1" vrátí název
stanice nebo interpreta a<br>
>>> to v UTF 8 formátu (diakritika).<br>
>>><br>
>>> Co dělám špatně? Zkoušel jsem nad tím i usilovně
přemýšlet :-), ale<br>
>>> ani to nepomohlo. Metoda pokus omyl (co najdu po
internetu) je také<br>
>>> selhala. Níže je uveden jeden z mnoha pokusů.<br>
>>><br>
>>> Blbý je, že se to ani nedá nějak pořádně
debugovat nebo to neumím (na<br>
>>> RPi a přístup přes SSH na konzoli).<br>
>>><br>
>>> Děkuji<br>
>>> MG<br>
>>><br>
>>> #define BUF_LEN 255<br>
>>> static wchar_t szwBuffer[BUF_LEN];<br>
>>><br>
>>> setlocale(LC_CTYPE, "en.UTF-8");<br>
>>><br>
>>> fp = popen( "mpc status | head -n 1", "r");<br>
>>> if (fp == NULL) {<br>
>>> printf("Failed to run command\n" );<br>
>>> exit(1);<br>
>>> }<br>
>>><br>
>>> fwide(fp,1);<br>
>>> while (fgetws(szwBuffer,
sizeof(szwBuffer)/sizeof(wchar_t), fp) !=<br>
>>> (wchar_t *)NULL);<br>
>>><br>
>>> wprintf( L"%s\n", szwBuffer);<br>
>>> _______________________________________________<br>
>>> HW-list mailing list - sponsored by <a
href="http://www.HW.cz" rel="noreferrer noreferrer"
target="_blank" moz-do-not-send="true">www.HW.cz</a><br>
>>> <a href="mailto:Hw-list@list.hw.cz"
target="_blank" rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">Hw-list@list.hw.cz</a><br>
>>> <a
href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
>>> _______________________________________________<br>
>>> HW-list mailing list - sponsored by <a
href="http://www.HW.cz" rel="noreferrer noreferrer"
target="_blank" moz-do-not-send="true">www.HW.cz</a><br>
>>> <a href="mailto:Hw-list@list.hw.cz"
target="_blank" rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">Hw-list@list.hw.cz</a><br>
>>> <a
href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
>> _______________________________________________<br>
>> HW-list mailing list - sponsored by <a
href="http://www.HW.cz" rel="noreferrer noreferrer"
target="_blank" moz-do-not-send="true">www.HW.cz</a><br>
>> <a href="mailto:Hw-list@list.hw.cz" target="_blank"
rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">Hw-list@list.hw.cz</a><br>
>> <a href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
> _______________________________________________<br>
> HW-list mailing list - sponsored by <a
href="http://www.HW.cz" rel="noreferrer noreferrer"
target="_blank" moz-do-not-send="true">www.HW.cz</a><br>
> <a href="mailto:Hw-list@list.hw.cz" target="_blank"
rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">Hw-list@list.hw.cz</a><br>
> <a href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
_______________________________________________<br>
HW-list mailing list - sponsored by <a
href="http://www.HW.cz" rel="noreferrer noreferrer"
target="_blank" moz-do-not-send="true">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank"
rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
<br>
</body>
</html>