Programowanie w systemie UNIX/Kodowanie
"Kompletne dzieła Szekspira, nieskompresowane, zajmują mniej więcej tyle samo miejsca, co 2 typowe zdjęcia zrobione nowoczesnym smartfonem (~5 megabajtów)."[1]
Plik tekstowy (ang. text file) –
- zawartość : tekst: dane w postaci alfanumerycznej. Uwaga są plik zawierające tekst w formie binarnej ( pdf, doc)
- format pliku:
- ciąg linii tekstu elektronicznego
- nie jest plikiem binarnym
- pozwala na otwarcie w edytorze tekstu
Typy
edytujPodział klasyczny
- prosty tekst (ang. plain text) - niesformatowany
- bogaty tekst ( ang. rich text) - sformatowany
Podział plików tekstowych wg MIME
- text/1d-interleaved-parityfec
- text/cache-manifest appcache manifest
- text/calendar ics ifb
- text/cql CQL
- text/cql-extension
- text/cql-identifier
- text/css css
- text/csv csv
- text/csv-schema csvs
- text/dns soa zone
- text/encaprtp
- text/enriched
- text/example
- text/fhirpath
- text/flexfec
- text/fwdred
- text/gff3 gff3
- text/grammar-ref-list
- text/html html htm shtml
- text/javascript es js mjs
- text/jcr-cnd cnd
- text/markdown md markdown
- text/mizar miz
- text/n3 n3
- text/parameters
- text/parityfec
- text/plain[2] txt text pot brf srt
- text/provenance-notation provn
- text/prs.fallenstein.rst rst
- text/prs.lines.tag tag dsc
- text/prs.prop.logic
- text/raptorfec
- text/RED
- text/rfc822-headers
- text/rtf
- text/rtp-enc-aescm128
- text/rtploopback
- text/rtx
- text/SGML sgml sgm
- text/shaclc shaclc shc
- text/shex shex
- text/spdx spdx
- text/strings
- text/t140
- text/tab-separated-values tsv
- text/texmacs tm
- text/troff t tr roff
- text/turtle ttl
- text/ulpfec
- text/uri-list uris uri
- text/vcard vcf vcard
- text/vnd.a a
- text/vnd.abc abc
- text/vnd.ascii-art ascii
- text/vnd.curl curl
- text/vnd.debian.copyright copyright
- text/vnd.DMClientScript dms
- text/vnd.dvb.subtitle
- text/vnd.esmertec.theme-descriptor jtd
- text/vnd.familysearch.gedcom ged
- text/vnd.ficlab.flt flt
- text/vnd.fly fly
- text/vnd.fmi.flexstor flx
- text/vnd.gml
- text/vnd.graphviz gv dot
- text/vnd.hans hans
- text/vnd.hgl hgl
- text/vnd.in3d.3dml 3dml 3dm
- text/vnd.in3d.spot spot spo
- text/vnd.IPTC.NewsML
- text/vnd.IPTC.NITF
- text/vnd.latex-z
- text/vnd.motorola.reflex
- text/vnd.ms-mediapackage mpf
- text/vnd.net2phone.commcenter.command ccc
- text/vnd.radisys.msml-basic-layout
- text/vnd.senx.warpscript mc2
- text/vnd.sosi sos
- text/vnd.sun.j2me.app-descriptor jad
- text/vnd.trolltech.linguist ts
- text/vnd.wap.si si
- text/vnd.wap.sl sl
- text/vnd.wap.wml wml
- text/vnd.wap.wmlscript wmls
- text/vtt vtt
- text/x-bibtex bib
- text/x-boo boo
- text/x-c++hdr h++ hpp hxx hh
- text/x-c++src c++ cpp cxx cc
- text/x-chdr h
- text/x-component htc
- text/x-csh csh
- text/x-csrc c
- text/x-diff diff patch
- text/x-dsrc d
- text/x-haskell hs
- text/x-java java
- text/x-lilypond ly
- text/x-literate-haskell lhs
- text/x-moc moc
- text/x-pascal p pas
- text/x-pcs-gcd gcd
- text/x-perl pl pm
- text/x-python py
- text/x-scala scala
- text/x-setext etx
- text/x-sfv sfv
- text/x-sh sh
- text/x-tcl tcl tk
- text/x-tex tex ltx sty cls
- text/x-vcalendar vcs
- text/xml
- text/xml-dtd
- text/xml-external-parsed-entity
Przykłady prostych plików tekstowych:
- zwykły tekst (rozszerzenie txt)
- kody źródłowe programów
- csv
- ical
- łaty i różnice
- skrypty
csv
edytujPrzykładowy csv[3], który może być zaimportowany do kalendarza:
Subject,Start Date,Start Time,End Date,End Time,All Day,Description My important event,04/19/2012,6:00pm,04/19/2012,9:00pm,false,Longer Description An all-day event,04/19/2012,,04/19/2012,,true,Missing times are OK A multi-day event,04/19/2012,6:00pm,04/20/2012,6:00pm,false,Start date and end date are different
pliki konfiguracyjne
edytujBiblioteka
- TOML ( Tom's Obvious Minimal Language) -A config file format for humans[4]
Grafika ASCI
edytujGrafika ASCI ( ASCI-Art)
Directory content docs/ ├── img/ # Image dir ├── include/ # TeX and HTML options ├── parts/ # Markdown content ├── _bookdown.yml # bookdown options ├── _output.yml # rmd output options ├── book.pdf # PDF output ├── index.html # HTML output ├── main.rmd # main MD file ├── Makefile └── README.md
Grafika Unicode
edytujGrafika Unicode [5]
┌─head─┐ ┌──value──┐ ┌──value──┐ │ ├───────►│ 4 │ │ 0 │ └──────┘ ├───next──┤ ├───next──┤ │ ├───────────►│ NULL │ └─────────┘ └─────────┘
ical
edytujPlik iCalendar[6][7] służy do zapisu danych kalendarzy. [8]
- Pierwszy wiersz w pliku iCalendar zawiera nagłówek = BEGIN: VCALENDAR
- ostatni wiersz pliku ( stopka) = END:VCALENDAR.
- Pomiędzy powyższymi wierszami wprowadzane są wydarzenia.
- wydarzenie musi być ujęte w wiersze BEGIN:VEVENT i END:VEVENT.
BEGIN: VCALENDAR BEGIN:VEVENT (szczegóły pojedynczego wydarzenia) END:VEVENT BEGIN:VEVENT (szczegóły pojedynczego wydarzenia) END:VEVENT END:VCALENDAR
biblioteki:
Budowa
edytujProsty plik tekstowy:[11]
- składa się ze znaków
- znaki mogą być pogrupowanych w wyrazy i linie.[12] Wtedy plik może zawierać znaki końca linii (EOL)
- plik może się rozpoczynać znakiem kolejności bajtów (BOM)
- plik jest zakończony znakiem końca pliku (EOF)[13].
Linia jest to ciąg znaków[14] (drukowalnych[15] i niedukowalnych[16]) zakończony znakiem końca linii[17]
Linię możemy podzielić na wyrazy rozdzielone spacjami[18]
Sygnatura pliku
edytujKodowanie
edytujCo każdy programista powinien wiedzieć o
Kod alfanumeryczny
edytujKod alfanumeryczny (ang. alphanumeric code) – kod, w którym do zapisu tekstów i liczb, przedstawianych jako ciągi cyfr, używa się określonych w danym kodzie znaków
Standardy kodowania
edytujStandardy ( strony kodowe, ang. code page)
- ASCII
- W stronach kodowych zgodnych z ASCII dolne 128 znaków zachowało swoje standardowe wartości US-ASCII
- UTF-8
- ISO 8859
- Unicode ISO 10646[23]
- EBCDIC
- Windows-1250.
Niektóre ze standardów kodowania dopuszczają także kody sterujące, znaki diakrytyczne i znaki specjalne np. Unicode.
Pojęcia
- standard kodowania: komputerowy standard kodowania zestawu znaków
- strona kodowa ( ang. "code page")- tabela zawierająca znaki i odpowiadające im kody
- Zestaw znaków ( charset)
- progam kodujący (ang. Character Map ) - graficzny program pokazujący znak dla odpowiedniego kodu i odwroitnie w różnych standardach kodowania
Dekodery
edytujDekoder znaków (ang. char) czyli jak sprawdzić znak?
- online
- unicode-table check
- Character Encoder / Decoder [24]
- Online Character Map [25]
- wikipedia kod znaku[26]
- Mausr - Marek's Unicode Symbols Recognizer[27]
- binary-to-ascii
- coolsymbol - cool symbols and Font Styles | Emoji | Character Count Tool
- offline
Dekoder plików / tekstu
Testy
edytuj- strona testowa
- Browser Test Page for Unicode Character[30]
- detexify : find a symbol in symbols-a4.pdf that you just can't memorize.
- offline
- w konsoli
Jak sprawdzić kodowanie pliku w konsoli ?
edytujSprawdzanie za pomocą komendy file ( nazwa pliku i wynik przykładowe) :
file a.txt
a.txt: UTF-8 Unicode (with BOM) text, with very long lines
UTF-8
Za pomocą komendy od :[33]
od -c babymonsterBUM.txt
przykładowy wynik :
0000000 357 273 277 s i z e 2 0 0 0 1 0 0 0000020 0 \n v i e w 1 5 4 0 . 4 0 2 0000040 6 2 2 3 2 4 2 1 4 1 8 5 2 1 4 8 0000060 0 3 7 8 2 4 7 2 4 5 8 4 0 2 5 8 0000100 3 5 7 5 5 1 3 5 0 1 1 3 4 2 8 8 0000120 1 0 2 7 0 4 2 5 2 5 6 2 7 0 3 9 0000140 5 6 9 5 0 2 8 8 1 6 7 0 9 4 6 7 0000160 4 5 5 5 7 4 1 2 9 3 0 3 2 7 1 1 0000200 5 3 9 3 2 5 8 7 9 4 9 1 3 5 4 8 ... 0010260 r a t e - m y - f r a c t a l ) 0010300 / b a b y - m o n s t e r / \n 0010317
Lub za pomocą edytora binarnego , np. beav, Jeex[34] lub Okteta.[35]
Typowe problemy
edytuj- kopiowanie i wklejanie powoduje że, zamiast oczekiwanego znaku otrzymujemy inny (zamiast minusa ...) .
- oznaczenie końca pliku ( EOF )[36]
- lokalne konwencje ortograficzne:
- kolejność alfabetyczna
- translacja z różnych języków
- w URL spacja ( ang. URL encoding ): Adresy URL nie mogą zawierać spacji. Kodowanie adresu URL zwykle zastępuje spację znakiem plus "+" lub znakiem "%20". Problemy:
- zamiast "_" jest oznaczna "%20" [37]
- stackoverflow : url-encoding-the-space-character-or-20 tutaj "%20" zamiast znaku plus "+"
Znaki
edytujZnaki z punktu widzenia programisty dzielimy na:
- drukowalne
- niedrukowalne
Podział wg znaczenia : [38]
- litery (ang. letter) (91.8%), podkategorie: duże (uppercase = Lu) , małe (ang. lowercase = Ll), tytułowe (titlecase = Lt), zmodyfikowane ( modifier = Lm)
- symbole (ang. symbol) : (5.0%), podkategoria: matematyczne (Symbol, math = Sm), zmodyfikowane (modifier = Sk), walutowe (currency = Sc)
- znaki (Mark) : (1.4%)
- cyfry (Number): 1,100 (1.0%)
- Punctuation: 598 (0.5%)
- inne (Other): 205 (0.2%)
- Separator: 20 (0.0%)
Klasy znaków ( character classes) wyrażeń regularnych Bash ( Bash Regular Expressions = BRE)[39]
- [[:alpha:]] - matches any alphabetic character written in upper or lower case.
- [[:alnum:]]- matches any alphanumeric character - namely, the characters in the range 0-9, A-Z, a-z.
- [[:blank:]] - matches a space and a tab character.
- [[:digit:]]- any numeric character from 0to 9.
- [[:upper:]]- uppercase alphabetic characters - A-Z.
- [[:lower:]]- alphabetic characters in lower case - a-z.
- [[:print:]] - matches any printable character.
- [[:punct:]] - matches punctuation marks.
- [[:space:]]- whitespace, in particular - a space, a tab character, characters NL, FF, VT, CR.
Podział wg strony kodowej [40]
- ascii
- unicode
- UTF-8
Znaki drukowalne
edytujProgram[41] drukuje znaki drukowalne ASCII:
// https://en.cppreference.com/w/c/language/ascii
// printtable ASCII
#include <stdio.h>
int main(void)
{
puts("Printable ASCII:");
for (int i = 32; i < 127; ++i) {
putchar(i);
putchar(i % 16 == 15 ? '\n' : ' ');
}
}
Wynik:
Printable ASCII: ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
Podobne znaki
edytuj- ascii '-' ( Hyphen, dash, minus )
- UTF-8 characters:
- kod = U+2212 ( MINUS SIGN )
- kod = U+002D ( HYPHEN-MINUS )
- kod = U+005F ( LOW LINE )
- kod = U+00AF ( MACRON )
- kod = U+2010 ( HYPHEN )
- kod = u+2011 ( NON-BREAKING HYPHEN )[42]
- kod = U+2012 ( FIGURE DASH )
- kod = U+2013 ( EN DASH )
- kod = U+2014 ( EM DASH )
- kod = U+268A ( MONOGRAM FOR YANG )
Read | Character | Unicode | ASCII | in URL | HTML notations |
---|---|---|---|---|---|
Minus | − | U+2212 | %E2%88%92 |
− − −
| |
Hyphen-minus | - | U+002D | - |
%2D |
|
Full-width Hyphen-minus | - | U+FF0D | %EF%BC%8D |
- -
|
Dywiz
edytujStandard ASCII przewidywał wspólny znak dla:
- łącznika
- minusa
- myślnika
Wspólny znak kreski poziomej w zestawie znaków ASCII znajduje się na pozycji 45 i określany jest jako łącznik-minus (ang. hyphen-minus). Z punktu widzenia typografii jest to rozwiązanie daleko niewystarczające, ale podyktowane było względami technicznymi ówczesnego poziomu rozwoju technik informacyjnych. Kolejne wprowadzane w komputerach osobistych zestawy znaków były zgodne ze standardem ASCII, jednak zwiększały liczbę dostępnych znaków. Stosowany w polskiej wersji systemu Windows zestaw Windows-1250 zawiera obok znaku łącznika-minusa (Alt+045) również znaki półpauzy (Alt+0150) i pauzy (Alt+0151). Wprowadzony później standard Unikod (ang. Unicode) obejmujący wszystkie możliwe znaki wszystkich znanych języków, również zgodny ze standardem ASCII, zawiera znaki łącznika-minusa (U+002D), półpauzy (U+2013) i pauzy (U+2014), ale obok nich również znaki łącznika (U+2010) i minusa (U+2212). Typograficznie właściwym dla dywizu jest w Unikodzie znak (U+2010). W systemie Microsoft Windows większość znaków pisarskich, także tych nieumieszczonych na klawiaturze, dostępna jest poprzez Tablicę znaków (w menu Start/Programy/Akcesoria/Tablica znaków lub Start/Uruchom... wpisując 'charmap'). Znaki te można także wprowadzać z klawiatury posługując się skrótami z kodami znaków. Przykładowo znak łącznika/minusa może być wprowadzony kombinacją klawiszy Alt+045 (lewy Alt w przypadku ustawionej tzw. polskiej klawiatury programisty, kod znaku wprowadzany z numerycznej części klawiatury), znaki pauzy i półpauzy – odpowiednio skrótami: Alt+0151 i Alt+0150.
W systemie Mac OS z układem klawiatury angielskiej oraz polskiej programisty znak półpauzy wprowadza się skrótem Alt+-, a pauzy Alt+Shift+-, natomiast w układzie polskiej maszynistki znak półpauzy wprowadza się skrótem Alt+Shift+8, a pauzy Alt+/.
W systemach operacyjnych działających w środowiskach graficznych KDE i Gnome, takich jak np. Linux, wymienione znaki można wprowadzić z tablicy znaków bądź trzymając wciśnięty lewy ctrl i shift wpisać u2014 (pauza) lub u2013 (półpauza), bądź użyć klawisza compose (--- daje pauzę, a --. półpauzę).</ref>
Nazwa | Znak | Unicode | Kod HTML | Nazwa unikodowa |
---|---|---|---|---|
Dywiz (łącznik) | ‐ lub ‐ |
HYPHEN | ||
Łącznik-minus | - lub - |
HYPHEN-MINUS | ||
Minus | − lub − lub − |
MINUS SIGN | ||
Półpauza (myślnik) | – lub – lub – |
EN DASH | ||
Pauza (myślnik) | — lub — lub — |
EM DASH | ||
Kreska liczbowa | ‒ lub ‒ |
FIGURE DASH |
Poziome zestawienie powyższych znaków w tej samej kolejności:
‐ - − – — ‒
|
Podobnie jak większość zaawansowanych edytorów tekstów, standard Unicode przewiduje specjalne znaki dla specyficznych sytuacji, związanych z automatyzacją przetwarzania tekstu:
- miękki (opcjonalny) łącznik (U+00AD), który pozostaje ukryty, gdy znajduje się w środku wiersza, jest natomiast widoczny, gdy przypada na koniec wiersza;
- łącznik, po którym wyraz nie może być dzielony (U+2011), którego należy użyć na przykład w słowie K‑219.
Dywiz charakterystyczny m.in. dla polskiej ortografii, tj. łącznik stawiany na końcu wiersza i powtarzany na początku następnego, jak w poniższym przykładzie:
Akademia Górniczo-
-Hutnicza
można uzyskać przez kombinację miękkiego łącznika i łącznika niełamiącego.
Znaki niedrukowalne
edytuj- znaki specjalne [43]
Przykłady:
- newline character (LF = Line Feed \n, \x0a)[44]
Wyświetlanie znaków niedrukowalnych
edytuj(nazwa pliku przykładowa):
hl-nonprinting () { local C=$(printf '\033[0;36m') B=$(printf '\033[0;46m') R=$(printf '\033[0m') np=$(env printf "\u00A0\uFEFF"); sed -e "s/\t/${C}▹&$R/g" -e "s/$/${C}⁋$R/" -e "s/[$np]/${B}& $R/g";}
lub od = Octal Dump:
od -c p.txt # c same as -t c, select printable characters or backslash escapes
od -tx1 file # output as a hexadecimal 1-byte units
lub hexdump:
hexdump -C file # tell you byte-for-byte what the file actually contains
lub z użyciem sed[48]
sed -n 'l' myfile.txt
lub vim
vi -b myfile.txt
lub otworzyć w LibreOffice Writer i zaznaczyć opcję pokaż Menu/Widok/Znaczniki formatowania[49]
cat
edytujcat -t -e p.txt
Formatowanie pliku makefile sprawdzimy za pomocą: [50]
cat -e -t -v makefile
W wyniku:
- tabulatory jako ^I
- końcówki linii jako $
BOM
edytujUnicode Byte-Order-Marker (BOM)[51]
Znajdowanie plików z BOM :[52]
grep -rl $'\xEF\xBB\xBF'
lub :
file * | grep UTF
albo znaleźć i usunąć BOM:
find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;
lub dos2unix[53]
W c: [54]
// http://unicodebook.readthedocs.org/en/latest/guess_encoding.html
#include <string.h> /* memcmp() */
const char *UTF_16_BE_BOM = "\xFE\xFF";
const char *UTF_16_LE_BOM = "\xFF\xFE";
const char *UTF_8_BOM = "\xEF\xBB\xBF";
const char *UTF_32_BE_BOM = "\x00\x00\xFE\xFF";
const char *UTF_32_LE_BOM = "\xFF\xFE\x00\x00";
char* check_bom(const char *data, size_t size)
{
if (size >= 3) {
if (memcmp(data, UTF_8_BOM, 3) == 0)
return "UTF-8";
}
if (size >= 4) {
if (memcmp(data, UTF_32_LE_BOM, 4) == 0)
return "UTF-32-LE";
if (memcmp(data, UTF_32_BE_BOM, 4) == 0)
return "UTF-32-BE";
}
if (size >= 2) {
if (memcmp(data, UTF_16_LE_BOM, 2) == 0)
return "UTF-16-LE";
if (memcmp(data, UTF_16_BE_BOM, 2) == 0)
return "UTF-16-BE";
}
return NULL;
}
Kodowanie | Reprezentacja (hexadecimal) | Reprezentacja (decimal) | Bajty jako znaki CP1252 |
---|---|---|---|
UTF-8 | EF BB BF
|
239 187 191
|

|
UTF-16 (BE) | FE FF
|
254 255
|
þÿ
|
UTF-16 (LE) | FF FE
|
255 254
|
ÿþ
|
UTF-32 (BE) | 00 00 FE FF
|
0 0 254 255
|
␀␀þÿ (␀ refers to the ASCII null character)
|
UTF-32 (LE) | FF FE 00 00
|
255 254 0 0
|
ÿþ␀␀ (␀ refers to the ASCII null character)
|
UTF-7 | 2B 2F 76 38 2B 2F 76 38 2D
|
43 47 118 56
|
+/v8
|
UTF-1 | F7 64 4C
|
247 100 76
|
÷dL
|
UTF-EBCDIC | DD 73 66 73
|
221 115 102 115
|
Ýsfs
|
SCSU | 0E FE FF
|
14 254 255
|
␎þÿ (␎ represents the ASCII "shift out" character)
|
BOCU-1 | FB EE 28
|
251 238 40
|
ûî(
|
GB-18030 | 84 31 95 33
|
132 49 149 51
|
„1•3
|
Można go usunąć za pomocą:[55]
sed '1 s/\xEF\xBB\xBF//' < input > output
Dodać:
printf("\xef\xbb\xbf");
EOL
edytujKoniec linii (ang. End Of Line, EOL) – znak lub sekwencja znaków oznaczająca zakończenie linii tekstu.
Współczesne edytory tekstu zwykle obsługują wszystkie sposoby oznaczania końca linii. Wiele innych programów również przetwarza tekst niezależnie od tego, jaki rodzaj zakończenia linii w nim występuje, jednak nie można zakładać, że automatyczne rozpoznawanie formatu zawsze zadziała poprawnie.
Błędna identyfikacja oznaczenia końca linii może doprowadzić do traktowania plików binarnych jako tekstowych i na odwrót, co może powodować błędną interpretację zawartości przy odczycie lub uszkodzenie danych przy zapisie. W związku z tym istnieje możliwość wymuszenia otwarcia lub przesłania pliku w trybie tekstowym albo binarnym. W trybie tekstowym znaki końca linii mogą być automatycznie zamieniane na znaki stosowane natywnie w systemie docelowym, natomiast w trybie binarnym wszystkie znaki pozostają nienaruszone.
W różnych systemach operacyjnych stosuje się określone znaki końca linii:
- W systemach opartych na kodowaniu ASCII są to kombinacje kodów CR (ang. carriage return, szesnastkowo
0x0D
) i LF (ang. line feed, szesnastkowo0x0A
): - W systemach opartych na EBCDIC jest to kod NEL (ang. NExt Line, szesnastkowo
0x15
).
EOF
edytujznakiem końca pliku (EOF)[56].
elementy przetwarzania tekstu
edytuj- usuwanie akcentów ( ang.Remove all accents)[57]
- Convert to uppercase
- Convert to lowercase
- Base64 encode & decode
- ROT13 cipher tool
- String length calculator
info o pliku
edytuj
String czyli łańcuchy znaków
edytuj- What every programmer should know about ‘String’ by Ahmed shamim hassan
- knuth-morris-pratt-string-matching by Nayuki
Dzielenie łańcuchów na słowa
edytujWczytywanie danych z pliku - parser
edytujZobacz również
edytuj- The Raster Tragedy at Low-Resolution Revisited: Opportunities and Challenges beyond “Delta-Hinting” by Beat Stamm, PhD
- Dane tekstowe w obrazach (metadata)
- Zalgo text w ang wikipedii
- Przetwarzanie kodu źródłowego programu - makra preprocesora
- stackoverflow questions : detecting-programming-language-from-a-snippet
- Defines all Languages known to GitHub
- search code web page
- detect language
- Using Language Identifiers (RFC 3066) Copyright © 2004, 2005 Tex Texin, John Cowan. All rights reserved.
- detect programing language]
- konwersje:
Przypisy
edytuj- ↑ quora: What-s-something-a-computer-programmer-knows-that-would-amaze-people-who-use-computers
- ↑ Plain Text - Dylan Beattie - NDC Copenhagen 2022
- ↑ CSV to iCal Calendar Convertor by Manas Tungare
- ↑ https://toml.io/en/
- ↑ stackoverflow question: i-dont-understand-how-this-code-replaces-the-head-of-a-linked-list-or-how-to ?
- ↑ Internet Calendaring and Scheduling Core Object Specification (iCalendar)
- ↑ iCalendar Specification Excerpts
- ↑ Pliki w formacie iCalendar
- ↑ libical library
- ↑ gcalcli library
- ↑ Plik tekstowy
- ↑ linia w ang. wikipedii
- ↑ EOF w wikipedii
- ↑ znakowy typ danych w wikipedii
- ↑ znaki drukowalne w wikipedii
- ↑ znaki niedrukowalne w wikipedii
- ↑ Koniec linii w wikipedii
- ↑ spacja
- ↑ sygnsatura poliku w ang. wikipedii
- ↑ How to Determine Text File Encoding Submitted by Ben Bryant
- ↑ What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text by David C. Zentgraf
- ↑ the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses by Joel Spolsky
- ↑ unicode - strona domowa
- ↑ Character Encoder / Decoder
- ↑ Online Character Map
- ↑ wikipedia kod znaku
- ↑ Mausr - Marek's Unicode Symbols Recognizer
- ↑ iconv − character set conversion
- ↑ iconv − character set conversion
- ↑ Browser Test Page for Unicode Character
- ↑ jak korzystać w c z utf-8
- ↑ C i unicode
- ↑ od - The Geek stuff
- ↑ Jeex
- ↑ Okteta - edytor plików binarnych
- ↑ stackoverflow question representing-eof-in-c-code
- ↑ fullhost blog: what-does-20-mean-in-a-web-address/
- ↑ znaki unicode
- ↑ bash-scripts-regular-expressions by Mikhail Raevskiy Sep 20, 2020
- ↑ What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text by David C. Zentgraf
- ↑ cppreference : ascii
- ↑ UTF-8 General Punctuation. Range: Decimal 8192-8303. Hex 2000-206F.
- ↑ Handling special characters in C (UTF-8 encoding)- stackoverflow
- ↑ Newline in wikipedia
- ↑ soscisurvey : view-chars
- ↑ bash function to highlight non-printing characters: tab, newline, BOM, nbsp
- ↑ datacadamia : bash whitespace
- ↑ alvin alexander : display-nonprintable-characters-in-text-file
- ↑ https://www.obliczeniowo.com.pl/794
- ↑ stackoverflow question: makefile4-missing-separator-stop
- ↑ BOM w wikipedii
- ↑ Elegant way to search for UTF-8 files with BOM?
- ↑ dos2unix converters
- ↑ Unicode encodings
- ↑ A Shell Script to Find and Remove the BOM Marker by Enrico M. Crisostomo
- ↑ EOF w wikipedii
- ↑ charset.org : base64-encode