hello,
Giải pháp của bạn là không tốt nói chung. Tại sao? Điều này đang làm việc với các chữ cái với mã ASCII dưới 256 (chuyển đổi và hiển thị tốt) nhưng thư với mã ASCII hơn 256 tôi có "?" dấu hiệu.
Vì vậy, Chúng tôi cần phải kết hợp hai giải pháp của chúng tôi trong một 
Ví dụ:
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;
}
dòng này: xác định hơn so với các chữ cái với mã ASCII dưới 256 sẽ không được giải mã bởi chức năng của tôi nhưng chỉ bằng cách Tôi đang thử nghiệm nó still.I không hoàn toàn chắc chắn rằng tất cả mọi thứ hoạt động chính xác.
Bạn có thể kiểm tra nó quá!