Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Operacje na stringu a kodowanie
Altrix
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 18.10.2010

Ostrzeżenie: (0%)
-----


Dziwna sprawa. Mam tekst w którym chce pozamieniać znaki szyfrem Cezara (czyli zamienić znak na 3 po nim w przygotowanej liście znaków).

Kodowanie UTF (plik też zapisany jako UTF)
  1. <?php
  2. $tekst = "Dzisiaj żółw nie wychodził z domku!";
  3.  
  4. $alfabet = " !\"#$%&'()*+,-./0123456789:;<=>?@";
  5. $alfabet.= "AaĄąBbCcĆćDdEeĘęFfGgHhIiJjKkLlŁłMmNnŃńOoÓó";
  6. $alfabet.= "PpQqRrSsŚśTtUuVvWwXxYyZzŹźŻż[\]^_`{|}~";
  7.  
  8. for ($i=0;$i<strlen($tekst);$i++) {
  9. $szyfr .= $alfabet[(strpos($alfabet, $tekst[$i])+3) % strlen($alfabet)];
  10. }
  11.  
  12. echo $szyfr;
  13. ?>

Po wykonaniu powinien wyswietlić sie tekst ale z pozamienianymi znakami (przesunięcie o 3). Niestety wyświetlają sie krzaki przy polskich fontach.

Czy ktoś może wie czemu te operacje powodują zmianę kodowania?
Czy ktoś wie jak można naprawić skrypt by prawidłowo działał?

Ten post edytował Altrix 27.04.2012, 13:14:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Do pobierania literki ze zmiennej alfabet użyj mb_substr a nie jak teraz $alfabet[ N ]
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 01:34