مرحبا ،
الحل ليس جيدا في العموم. لماذا؟ هذا هو العمل مع الرسائل مع رمز ASCII تحت 256 (تحويل وعرض جيد) ، ولكن الرسائل مع رمز ASCII أكثر من 256 وأنا "؟" علامات.
لذا نحن في حاجة إلى الجمع بين بلدينا الحلول في واحدة ![Wink](images/smilies/wink.png)
على سبيل المثال :
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;
}
هذا السطر : وسيتم تحديد من الرسائل مع رمز ASCII تحت 256 لا فك الشفرة التي مهامي لكن فقط أنا باختباره صباحا still.I غير متأكد تماما أن كل شيء يعمل بشكل صحيح الآن.
يمكنك اختبار ذلك أيضا!