• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

felerne działanie funkcji chr() .

Object Storage Arubacloud
0 głosów
400 wizyt
pytanie zadane 3 lutego 2016 w PHP przez Ceki Mądrala (5,310 p.)

Witam!

Język: PHP

Problem:
funkcja chr($numerZnaku) nie wypisuje znacznej większości znaków z tablicy ascii.
próbowałem:

- zmienić kodowanie znaków z utf-8 na ANSI.
- wypisać poszukiwany zestaw liter ze zmiennych na których nie wykonywałem funkcji chr(), co zakończyło się sukcesem.

na załączonym zdjęciu widać fragment znaków ascii wyświetlonych ze zmiennych na których była wykonywana funkcja chr($numerZnaku), a liczba odpowiada numerowi tego znaku.

Z góry dzięki i Pozdrawiam.

2 odpowiedzi

+2 głosów
odpowiedź 3 lutego 2016 przez event15 Szeryf (93,790 p.)
wybrane 3 lutego 2016 przez event15
 
Najlepsza
function unichr($u) {
    return mb_convert_encoding('&#' . intval($u) . ';', 'UTF-8', 'HTML-ENTITIES');
}

 

komentarz 3 lutego 2016 przez efiku Szeryf (75,160 p.)
komentarz 3 lutego 2016 przez Ceki Mądrala (5,310 p.)
Co to robi? I co muszę podać jako atrybut do funkcji?
komentarz 3 lutego 2016 przez Ceki Mądrala (5,310 p.)
A miałbyś może taką funkcję tylko że dla substr()? Bo dla np ę zwraca niestety podobnie, co innego.
komentarz 3 lutego 2016 przez Comandeer Guru (601,530 p.)
http://php.net/mb_substr → ogólnie polecam poznać te funkcje.
komentarz 3 lutego 2016 przez Ceki Mądrala (5,310 p.)
Dzięki za pomoc ;)
0 głosów
odpowiedź 3 lutego 2016 przez obl Maniak (51,280 p.)

chr zwraca kod ASCII (czyli 8-bitowy) natomiast na stronie możesz mieć ustawione różne kodowanie znaków, np. UTF-8 dla utf-8 znaki ASCII, które mają numery od 0 do 127 są obsługiwane poprawnie (bo mieszczą się w standardzie kodowania UTF-8), pozostałe już nie i wymagają zamiany z danej strony kodowej ASCII na UTF-8. Polskie znaki diakrytyczne wymagają np. dwóch bajtów w kodzie UTF-8 i stąd te znaczki zamiast literek dla numerów powyżej 127 bo nie ma w UTF-8 znaku zapisywanego binarnie np. 10000000 (128). Musisz znaleźć sposób żeby konwertować z ASCII (z uwzględnieniem odpowiedniej strony kodowej) do UTF-8.

Podobne pytania

0 głosów
1 odpowiedź 180 wizyt
pytanie zadane 15 grudnia 2016 w C i C++ przez programmero Bywalec (2,420 p.)
0 głosów
1 odpowiedź 288 wizyt
pytanie zadane 17 grudnia 2022 w C i C++ przez Stahious Nowicjusz (150 p.)
0 głosów
1 odpowiedź 336 wizyt
pytanie zadane 2 lipca 2022 w C i C++ przez polandonion Mądrala (7,040 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...