Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Okrojony synonim funkcji iconv() - jak poprawić?
Forum PHP.pl > Forum > PHP
id4
Witam.

Szperałem już chyba wszędzie. nie znalazłem rozwiązania swojego problemu. Postanowiłem więc napisać tutaj.
Z racji tego, że serwer na którym mam konto nie obsługuje funkcji iconv(), zmuszony byłem do napisania jej pseudo-funkcji. Zależy mi głównie na synonimie zapisu $text=iconv("ISO-8859-2","UTF-8",$text);. Tak więc zabrałem się do pracy. Napisałem prawie działającą funkcję (w zasadzie to jedna powielona linia):
[php:1:424d8945b1]<?php
function convertText($text){
$text=str_replace("ą","Ä…",$text);
$text=str_replace("ś","Ĺ›",$text);
$text=str_replace("ł","Ĺ‚",$text);
$text=str_replace("ó","Ăł",$text);
$text=str_replace("ź","Ĺş",$text);
$text=str_replace("ż","Ĺź",$text);
$text=str_replace("ę","Ä™",$text);
$text=str_replace("ć","ć",$text);
$text=str_replace("ń","Ĺ„",$text);
$text=str_replace("Ę","Ę",$text);
$text=str_replace("Ó","Ă“",$text);
$text=str_replace("Ą","Ä„",$text);
$text=str_replace("Ź","Ĺš",$text);
$text=str_replace("Ś","Ĺš",$text);
$text=str_replace("Ł","Ł",$text);
$text=str_replace("Ż","Ĺť",$text);
$text=str_replace("Ć","Ć",$text);
$text=str_replace("Ń","Ń",$text);
return $text;
}
?>[/php:1:424d8945b1]
Mój problem polega na tym, że nie konwertuje się litera Ś, gdyż posiada ona taki sam znak kodowy w UTF-8 co litera Ź. W związku z tym zamiast uzyskać wyraz Ślizgać uzyskuje Źlizgać. Nie bardzo wiem gdzie zdobyć informacje o kodowaniu litery Ś w UTF-8 przy odczytaniu przy pomocy ISO-8859-2.

Z góry dzięki za pomoc.
id4
Witam.
Czy na prawdę nikt nie potrafi mi pomóc?
Może ktoś spotkał się z takim problemem - a raczej jego rozwiązaniem?
tsharek
witam. nie wiem czy ci coś to pomoże -> kiedyś miałem problem z dużym (bądź małym - jusz nie pamiętam) "ź". Srałem się z tym nie wiem ile, ale problem okazał się błahy. Otóż niektóre edytory (np. notepad) przy zapisywaniu pliku zamieniają te litery. źle je interpretują poprostu. tak samo sprawa ma się z kopiowaniem (ctrl+c i ctrl+v). sam możesz zobaczyć: skopuj jakiś tekst pod notatnikiem w którym jest ź do jakiegoś nowego dokumentu notatnika i zobaczysz że się skszaniło. robię to pod win98. może to o to chodzi. pozdrawiam.
KeeKee
Sprawdź tutaj -> http://webdesign.art.pl/atelier/unicode.html
Powinno pomóc...
matic
A co powiedzialbys na to:
Kod
$rec = strtr($rec, "xa4x8fxa8x9dxe3xe0x97x8dxbdxa5x86xa9x88xe4xa2x98xabxbe", "xa1xc6xcaxa3xd1xd3xa6x8fxafxb1xe6xeaxb3xf1xf3x9cx9fxbf");

zamiana na odpowiednie znaki w odpowiednim kodowaniu. Dodam tylko, ze rowniez mialem problem z niektorymi znakami.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.