Współrzędne kodowe

0

Proszę o informację n.t. współrzędnych kodowych Mam na myśli: czym one są, jakie mają zastosowanie w praktyce oraz proszę o wytłumaczenie metody:

 
 int index = greeting.offsetByCodePoints(0, 7);
       int cp = greeting.codePointAt(index);
       System.out.println(cp);

Jestem początkujący więc proszę, językiem w miarę przystępnym.

Z góry dziękuję

0

Znaki (litery, cyfry ale też np. →↓←,.<>) są zapisywane zgodnie z określonym kodowaniem np. UTF-8 czy ASCII. Niektóre z tych kodowań zapisują niektóre znaki za pomocą kilku bajtów i właśnie taki zestaw bajtów pozwalających na zapisanie pojedynczego znaku (glifu) nazywamy code point (CP) i jest rozumiana jako abstrakcyjny znak. Reszta tutaj → https://en.wikipedia.org/wiki/Code_point

0

Okej dziękuję, już rozumiem. Jakie jest zastosowanie praktyczne?

0

Praktyczne zastosowanie to np. język chiński i różna długość ciągu wyrażona w bajtach i w znakach :) Przykładowo w systemach w rodzaju EuroELIXIRa istnieje limit długości wiadomości (opisu przelewu) wyrażony w znakach, ale jednocześnie format pliku ma ograniczenie na liczbę bajtów (jeżeli przekraczamy liczbę bajtów to cała wiadomość idzie w osobnym pliku). Zatem CP pozwala dostosować zachowanie systemu do komunikatu.

0

Jeszce raz dziękuję za rzetelną odpowiedź :)

0

BTW, jeszcze jeden przykład – wiadomości SMS. Jak zaczynasz używać polskich znaków to nagle długość wiadomości spada :)

0

Praktyczne zastosowanie to np. język chiński i różna długość ciągu wyrażona w bajtach i w znakach

Aale, czy stringi w Javie nie są na sztywno w UTF-16?
W tym kodowaniu praktycznie wszystkie istotne znaki mają dwa bajty. Dopiero egzotyka taka jak starożytne hieroglify ma po cztery.

0

@Azarien, masz rację. Dlatego też nas ten problem praktycznie nie dotyczy. Jednak warto o tym pamiętać, bo coraz popularniejsze staje się wprowadzanie różnych dziwnych znaczków do tekstów w np. portalach społecznościowych ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°)

1 użytkowników online, w tym zalogowanych: 0, gości: 1