<div dir="auto">Tak je to ještě trochu jinak... už to chápu. Na wiki jsem to viděl už dříve, ale asi jsem se v tom zamotal jinde. Už mi to funguje. Díky.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Dne st 31. 8. 2022 19:06 uživatel Pavel Hudeček <<a href="mailto:edizon@seznam.cz">edizon@seznam.cz</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div>
    Velmi hezky je to vidět v tab. zde:<br>
    <a href="https://cs.wikipedia.org/wiki/UTF-8" target="_blank" rel="noreferrer">https://cs.wikipedia.org/wiki/UTF-8</a><br>
    <br>
    PH<br>
    <br>
    <div>Dne 31.08.2022 v 18:32 Michal Grunt
      napsal(a):<br>
    </div>
    <blockquote type="cite">
      
      <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" target="_blank" rel="noreferrer">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" rel="noreferrer noreferrer" target="_blank">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 noreferrer" target="_blank">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" rel="noreferrer noreferrer" target="_blank">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" rel="noreferrer noreferrer" target="_blank">michal.grunt@gmail.com</a>><br>
          >>> To: HW-news <<a href="mailto:hw-list@list.hw.cz" rel="noreferrer noreferrer" target="_blank">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 noreferrer" target="_blank">www.HW.cz</a><br>
          >>> <a href="mailto:Hw-list@list.hw.cz" rel="noreferrer noreferrer" target="_blank">Hw-list@list.hw.cz</a><br>
          >>> <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer noreferrer" target="_blank">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 noreferrer" target="_blank">www.HW.cz</a><br>
          >>> <a href="mailto:Hw-list@list.hw.cz" rel="noreferrer noreferrer" target="_blank">Hw-list@list.hw.cz</a><br>
          >>> <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer noreferrer" target="_blank">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 noreferrer" target="_blank">www.HW.cz</a><br>
          >> <a href="mailto:Hw-list@list.hw.cz" rel="noreferrer noreferrer" target="_blank">Hw-list@list.hw.cz</a><br>
          >> <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer noreferrer" target="_blank">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 noreferrer" target="_blank">www.HW.cz</a><br>
          > <a href="mailto:Hw-list@list.hw.cz" rel="noreferrer noreferrer" target="_blank">Hw-list@list.hw.cz</a><br>
          > <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer noreferrer" target="_blank">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 noreferrer" target="_blank">www.HW.cz</a><br>
          <a href="mailto:Hw-list@list.hw.cz" rel="noreferrer noreferrer" target="_blank">Hw-list@list.hw.cz</a><br>
          <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
        </blockquote>
      </div>
      <br>
      <fieldset></fieldset>
      <pre>_______________________________________________
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank" rel="noreferrer">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" target="_blank" rel="noreferrer">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank" rel="noreferrer">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
    </blockquote>
    <br>
  </div>

_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank" rel="noreferrer">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div>