Diakritika - ako to teda je ?

Sekcia: Programovanie 16.12.2015 | 14:03
Avatar Robo Ubuntu 14.04 64bit  Používateľ

zacinam s programovanim, chcem sa naucit Ccko...  kupil som si knihu (v Cestine) a sucastou su aj jednoduche priklady v PASKALe, ak ich otvorim v hocijakom editore (aj v konzole), nezobrazuje sa spravne diakritika, iba haky-baky

skusal som nastavovat rozne kodovanie a jeden priklad sa uz zobrazuje spravne ale ostatne sa stale zobrazuju blbo aj ked nastavim take iste parametre (mod: UNIX (LF) kodovanie: UTF-8 )

prikladam tie priklady: DvaRadky.pas funguje spravne a Vypis.pas ukazuje blbosti

    • RE: Diakritika - ako to teda je ? 16.12.2015 | 14:36
      Avatar Robo Ubuntu 14.04 64bit  Používateľ

      prilohy

      • RE: Diakritika - ako to teda je ? 16.12.2015 | 17:51
        Avatar Livan   Návštevník

        Zrejme tie príklady nie sú v kódovaní UTF-8 ale v inom. Dosť často sa používalo najmä pod windows kódovanie 1250, skús nastaviť to alebo iné.

    • RE: Diakritika - ako to teda je ? 16.12.2015 | 18:33
      Avatar Robo Ubuntu 14.04 64bit  Používateľ

      ee... nefunguje to a ani ziadne ine napr. ISO.8859-2, 8859-1..... ???

      ani ziadne ine

      ako zistim v com to bolo napisane, v akom kodovani ?

    • RE: Diakritika - ako to teda je ? 16.12.2015 | 19:41
      Avatar WlaSaTy   Návštevník

      Áno. Vypis.pas je vytvorený ako Unicode, UTF-8. Ale čo v ňom malo byť, to sa skús opýtať autora ak to nie je náhodou domáca. Tú nalej.

      ~$ enca -L none Vypis.pas 
      Universal transformation format 8 bits; UTF-8
      ~$ file -bi Vypis.pas 
      text/x-pascal; charset=utf-8
      ~$ cat Vypis.pas 
      program Vypis;
      begin
         writeln('U§ nejsme za ten¡ci!');
         readln;
      end.
      ~$ enca -L none Vypis.pas 
      Universal transformation format 8 bits; UTF-8
      ~$ file -bi Vypis.pas 
      text/x-pascal; charset=utf-8
      ~$ cat Vypis.pas | iconv -f UTF-8 -t ISO-8859-1
      program Vypis;
      begin
         writeln('U� nejsme za��te�n�ci!');
         readln;
      end.
      ~$ od -c Vypis.pas 
      0000000   p   r   o   g   r   a   m       V   y   p   i   s   ;  \n   b
      0000020   e   g   i   n  \n               w   r   i   t   e   l   n   (
      0000040   '   U 302 247       n   e   j   s   m   e       z   a 302 237
      0000060 302 240   t   e 302 237   n 302 241   c   i   !   '   )   ;  \n
      0000100               r   e   a   d   l   n   ;  \n   e   n   d   .  \n
      0000120
      ~$ echo "'Už nejsme začátečníci\!');"|od -c
      0000000   '   U 305 276       n   e   j   s   m   e       z   a 304 215
      0000020 303 241   t   e 304 215   n 303 255   c   i   \   !   '   )   ;
      0000040  \n
      0000041
      ~$ rm *.pas
      
      Všimni si rozdielne kódy pri diakritike v UTF-8 znakoch.

    • RE: Diakritika - ako to teda je ? 16.12.2015 | 20:15
      Avatar Robo Ubuntu 14.04 64bit  Používateľ

      Otazka je - co sa s tym da urobit ?  ze vraj by to mohol byt este DOSovsky Pascal, stare kodovanie CP852

       kniha je z roku 2012 napisana 2009 :-) 

      • RE: Diakritika - ako to teda je ? 16.12.2015 | 21:13
        Avatar WlaSaTy   Návštevník

        Dosový pascal to nemôže byť keďže to používa kombináciu 8bit a 16bit na zápis písmenka, tým sa prejavuje UTF-8. A ten v DOSe nebol. V dose sa použíValo Latin2 alebo kódovanie kamenických, obe kódovania mali 8bit na písmeno. Z roku 2012 alebo 2009 to tiež nie je, pozri na dátum tých zabalených súborov. Ten dátum je mladší jedného dňa, takže tie súbory museli byť vytvorené teraz prednedávnom. Ako a odkiaľ si to kopíroval? Textový súbor (*.pas) z pribaleného CD to nevyzerá byť. Nie je to náhodou skopírované z nejakej windows aplikácie ktorá zmršila diakritiku? To mi príjde najpravdepodobnejšie keďže tie súbory majú po rozbalení unixové zalamovanie riadkov, a nie dosovo windowsové.

        • RE: Diakritika - ako to teda je ? 16.12.2015 | 22:37
          Avatar bedňa LegacyIce-antiX  Administrátor

          Nemáš pravdu ROBO to trafil, stačí použiť:

          iconv -f CP852 -t UTF-8 pas/Vypis.pas
          program Vypis;
          begin
             writeln('Už nejsme začátečníci!');
             readln;
          end.
          a diakritika je READY.

          Predtým:

          cat pas/Vypis.pas 
          program Vypis;
          begin
             writeln('U� nejsme za��te�n�ci!');
             readln;
          end.
          
          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: Diakritika - ako to teda je ? 17.12.2015 | 01:57
            Avatar samalama   Návštevník

            co ty na to, PleSaTy?

            • RE: Diakritika - ako to teda je ? 17.12.2015 | 19:59
              Avatar WlaSaTy   Návštevník

              Iba toľko, že v tom sem nahranom ZIPe bol iný súbor ako na stránke kde boli k stiahnutiu príklady z tej knihy v archíve RAR. V tom Zipe bolo unixové zalamovanie riadkov, v RARe dosové. V Zipe boli znaky s diakritikou ako 16bit, v RARe ako 8bit.

              ~$ od -c Programovani_PUZ/Kapitola02/pas/Vypis.pas
              0000000   p   r   o   g   r   a   m       V   y   p   i   s   ;  \r  \n
              0000020   b   e   g   i   n  \r  \n               w   r   i   t   e   l
              0000040   n   (   '   U 247       n   e   j   s   m   e       z   a 237
              0000060 240   t   e 237   n 241   c   i   !   '   )   ;  \r  \n        
              0000100       r   e   a   d   l   n   ;  \r  \n   e   n   d   .  \r  \n
              0000120
              ~$ iconv -f CP852 -t UTF-8 <  Programovani_PUZ/Kapitola02/pas/Vypis.pas
              program Vypis;
              begin
                 writeln('Už nejsme začátečníci!');
                 readln;
              end.
              ~$ iconv -f CP852 -t UTF-8 <  Vypis.pas
              program Vypis;
              begin
                 writeln('U┬ž nejsme za┬č┬áte┬čn┬íci!');
                 readln;
              end.
              ~$ cat Programovani_PUZ/Kapitola02/pas/Vypis.pas|tr -d '\r'|iconv -f ISO_8859-2 -t UTF-8 |od -c
              0000000   p   r   o   g   r   a   m       V   y   p   i   s   ;  \n   b
              0000020   e   g   i   n  \n               w   r   i   t   e   l   n   (
              0000040   '   U 302 247       n   e   j   s   m   e       z   a 302 237
              0000060 302 240   t   e 302 237   n 304 204   c   i   !   '   )   ;  \n
              0000100               r   e   a   d   l   n   ;  \n   e   n   d   .  \n
              0000120
              ~$
              
              Chalan to omylom otvoril v editore ako 8859-2 a skonvertoval do UTF. Mal to otvoriť ako CP 852. Preto som sa pýtal na zdroj.

              A čo na to ty, odborník? Máme u nás voľné miesto, potrebujeme všeumelca. Nepošleš životopis?

    • RE: Diakritika - ako to teda je ? 16.12.2015 | 21:32
      Avatar Robo Ubuntu 14.04 64bit  Používateľ

      jedna sa o tuto knihu: http://knihy.cpress.cz/programovani-pro-uplne-zacatecniky.html

      priklady stiahnes tu: http://knihy.cpress.cz/?p=actions&action=download/file&value=files&id=72948

    • RE: Diakritika - ako to teda je ? 16.12.2015 | 22:08
      Avatar Robo Ubuntu 14.04 64bit  Používateľ

      ja uz som s tymi subormi bastrguval takze teraz uz sa tvaria ako UTF-8 ale ked otestujem v linuxe tie povodne subory s toho linku prikazom file --mime-encoding tak vypise unknown-8bit

      takze to predsa bude stary DOS charset

      • RE: Diakritika - ako to teda je ? 16.12.2015 | 22:39
        Avatar bedňa LegacyIce-antiX  Administrátor

        Viď moja odpoveď vyššie.

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: Diakritika - ako to teda je ? 16.12.2015 | 22:54
      Avatar Robo Ubuntu 14.04 64bit  Používateľ

      zahada vyriesena, dakujem vsetkym za rady a za ochotu :-)

      • RE: Diakritika - ako to teda je ? 16.12.2015 | 22:58
        Avatar bedňa LegacyIce-antiX  Administrátor

        Nieje zač.

        GL

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
        • RE: Diakritika - ako to teda je ? 16.12.2015 | 23:13
          Avatar vxmery Mint 21.3 Cinnamon  Používateľ

          Ale je, robis svet lepsim :)

    • RE: Diakritika - ako to teda je ? 17.12.2015 | 12:07
      Avatar Robo Ubuntu 14.04 64bit  Používateľ

      len pre uplnos...

      vcera uz sa mi nechcelo zapinat velky pocitac tak dneska som to skonvertoval a to tak, ze vo Win - NotePad++  som si spravil makro a na cca 5 klikov som to potom previedol

      vsetky supory .pas okrem uplne prveho (ten bol Win1250) boli OEM 852 a ostane .txt boli Win1250

      vsetky som zjednotil na UTF-8 a uz sa vsetko zobrazuje spravne aj v Linuxe :-)