function is_utf8($ string){
return preg_match( '%^(?:
[x09x0ax0dx20-x7e] x9F] [x80-xBF] # サロゲートを除く
xF0[x90-xBF][x80-xBF]{2} # プレーン 1-3
| 🎜> | xF4[x80-x8F] [x80-xBF]{2} # plan 16
)*$%xs', $string); それは同じで、どちらも正しく、どちらも間違っています。
エンコーディング検出は 100% 正確であることはできませんが、これは基本的に要件を満たすことができます。