hello,
Jūsu risinājums nav laba vispār. Kāpēc? Tas strādā ar burtiem ar ASCII kods, saskaņā ar 256 (konvertēta un parādīti labas), bet burti ar ASCII kodu, vairāk nekā 256 Man ir "?" zīmes.
Tāpēc mums ir nepieciešams apvienot abas mūsu risinājumi vienā
piemēram:
PHP Code:
function vbet_encodeToSafeUTF8(&$string) {
$string = preg_replace('/([\340-\357])([\200-\277])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-224)*4096 + (ord(\'\\2\')-128)*64 + (ord(\'\\3\')-128)).\';\'',
$string);
//decode two byte unicode characters
$string = preg_replace('/([\304-\337])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-192)*64+(ord(\'\\2\')-128)).\';\'',
$string);
$string = utf8_decode($string);
return $string;
}
šo līniju: define nekā burti ar ASCII kods, saskaņā ar 256 būs ne dekodēt ar manu darbību, bet tikai ar Es esmu testēšana tā still.I neesmu pilnīgi pārliecināts, ka viss darbojas pareizi tagad.
Jūs varat pārbaudīt to pārāk!