halló,
Lausnin er ekki góður í almennt. Hvers vegna? Þetta er vinna með bókstöfum með ASCII kóða undir 256 (snúið við og birtist góður), en bréf með ASCII kóða yfir 256 hef ég "?" merki.
Þannig að við þurfum að sameina tvær lausnir okkar í einu
dæmi:
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;
}
þessa línu: define en bréf með ASCII kóða undir 256 verður ekki afkóða eftir málaflokkum mína en aðeins með því að Ég prófa það still.I er ekki alveg viss um að allt virkar rétt núna.
Þú getur prófað það líka!