Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Znaki Unicode (utf-8): kod 10 (koniec linii) i kod 13 (powrót karetki)



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Inne
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
samolot



Dołączył: 26 Sty 2006
Posty: 8245
Skąd: Toruń

PostWysłany: Nie Sty 21, 2018 4:59 pm  OP    Temat postu: Znaki Unicode (utf-8): kod 10 (koniec linii) i kod 13 (powrót karetki) Odpowiedz z cytatem Pisownia

Zastanowiło mnie, czy we wszystkich zestawach znaków w utf8 zawsze występuję te same znaki końca linii i powrotu karetki, czyli 10 i 13, niezależnie od konkretnego zestawu znaków?
Tak mi to wyszło z mojego "badania unicode".

_________________
Nie zadawaj bezcelowych pytań / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie


Ostatnio zmieniony przez samolot dnia Nie Sty 21, 2018 10:11 pm, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
mrowek



Dołączył: 28 Maj 2005
Posty: 330
Skąd: pniewy wlkp

PostWysłany: Nie Sty 21, 2018 7:09 pm      Temat postu: Odpowiedz z cytatem Pisownia

ciekawe, imho znaki kontrolne pozostały w unicode,


edit:
testujac plan9 znaki specjalne pojawialy sie jako grafiki tego typu
https://en.wikipedia.org/wiki/Unicode_control_characters#Control_pictures

no i odpowiedz jest w tym samej stronie wiki :V
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
Sinus32



Dołączył: 20 Sty 2007
Posty: 903

PostWysłany: Nie Sty 21, 2018 9:53 pm      Temat postu: Odpowiedz z cytatem Pisownia

Utf-8 jest jednym ze sposobów kodowania znaków Unicode. Nie istnieje coś takiego jak różne zestawy znaków w utf-8.

Unicode jest jeden i zawiera wszystkie znaki (w zamierzeniu obejmuje wszystkie pisma używane na świecie). UTF-8, UTF-16 BE, UTF-16 LE i UTF-32 są kodowaniami (sposobami bajtowej reprezentacji) poszczególnych znaków ze zbioru znaków Unicode.

Pojęcie "różnych zestawów znaków" nabiera sensu dopiero w odniesieniu do stron kodowych (np: CP 1250, czy OEM 852), lub standardów kodowania jak ISO 8859-2 i ISO 8859-1, które zakładają, że każdy znak jest kodowany przy użyciu jednego bajtu. Wtedy te same wartości batów kodują różne znaki, zależnie od wybranej strony kodowej, lub standardu ISO.

Stron kodowych i standardów kodowania ISO nie można używać zamiennie, bo nie są sobie równoznaczne. Np: zarówno CP 1250, jak i ISO 8859-2 kodują polskie znaki, ale zostały zdefiniowane przez różne organizacje i różnią się kodami niektórych znaków (między innymi: Ą, ą, Ś, ś, Ź, ź).

Każdy znak we wszystkich stronach kodowych posiada swoje mapowanie na znak z Unicode. Zarówno Unicode, jak i strony kodowe, oraz inne standardy ISO starają się być zgodne z ASCII. ASCII definiuje znaki z zakresu od 0 do 127 (i tylko te, żadnego więcej), przez co większość stron kodowych i standardów ISO, z Unicode włącznie, koduje pierwsze 127 znaków tak samo.

Z tego względu możesz bezpiecznie przyjąć pewne praktyczne założenie, że jeżeli masz do czynienia z kodowaniem, które koduje jeden bajt do jednego znaku, to pierwsze 127 znaków zwykle jest kodowanych samo, a pierwsze 32 znaki (znaki kontrolne) zawsze są kodowane tak samo. Jest to także prawdą dla kodowania utf-8, które koduje jeden lub więcej bajtów na jeden znak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
samolot



Dołączył: 26 Sty 2006
Posty: 8245
Skąd: Toruń

PostWysłany: Nie Sty 21, 2018 10:52 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Załóżmy, że polski tekst mam zapisany w systemie kodowania utf-8 i w nim występują znaki sterujące LF i CR
Czy, jeśli ten tekst przetłumaczę na język rosyjski i zapiszę go w cyrylicy rosyjskiej, to czy jeśli w tym tekście wystąpią takie znaki sterujące LF i CR, to one tam mają też kody 10 i 13 ?
Czyli rozumiem, że te kody sterujące nie są zależne od stron kodowych ale od systemu operacyjnego. Na przykład w systemach Windows są zawsze takie same, niezależnie od tego w jakim języku są zapisane z kodowaniem utf-8?

_________________
Nie zadawaj bezcelowych pytań / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Sinus32



Dołączył: 20 Sty 2007
Posty: 903

PostWysłany: Pon Sty 22, 2018 12:32 am      Temat postu: Odpowiedz z cytatem Pisownia

samolot napisał:
Załóżmy, że polski tekst mam zapisany w systemie kodowania utf-8 i w nim występują znaki sterujące LF i CR
To oznacza że tekst jest w Unicode z wykorzystaniem kodowania utf-8.

samolot napisał:
Czy, jeśli ten tekst przetłumaczę na język rosyjski i zapiszę go w cyrylicy rosyjskiej, to czy jeśli w tym tekście wystąpią takie znaki sterujące LF i CR, to one tam mają też kody 10 i 13 ?
Tak, niezależnie od tego czy ten tekst będzie zakodowany w utf-8, cp 1251, czy ISO 8859-5.

UTF-8 koduje Unicode, a Unicode zawiera znaki cyrylicy. Unicode zawiera wszystkie znaki.
CP 1251, czyli strona kodowa Windows-1251 również zawiera znaki cyrylicy.
Standard ISO 8859-5 powstał by pokryć języki używające cyrylicy tj.: język bułgarski, białoruski, macedoński, rosyjski, serbski i ukraiński sprzed roku 1990.

samolot napisał:
Czyli rozumiem, że te kody sterujące nie są zależne od stron kodowych ale od systemu operacyjnego.
To rozumowanie nie jest właściwe.

samolot napisał:
Na przykład w systemach Windows są zawsze takie same, niezależnie od tego w jakim języku są zapisane z kodowaniem utf-8?
UTF-8 nie posiada podziału na języki. Nie posiada żadnych podziałów tego typu.

Kody sterujące zostały zdefiniowane na samym początku istnienia komputerów, zanim te doczekały się monitorów.
Obecnie są ustandaryzowane w zestawie znaków ASCII, więc są niezależne od systemu operacyjnego. Systemy z rodzin DOS, Windows, Unix i MacOS interpretują je tak samo.

Podsumowując:
LF zawsze ma kod 10, niezależnie od czegokolwiek i wszędzie.
CR zawsze ma kod 13, niezależnie od czegokolwiek i wszędzie.
Przypisanie tych kodów nie ma związku z UTF-8.
Kody te są zdefiniowanie w ASCII, Unicode, oraz stronach kodowych i innych standardach kodowania.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Inne Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.08573 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |