Melepaskan Aksara Tidak Boleh Cetak dalam Rentetan
Pengenalan:
Apabila mengendalikan data teks, selalunya perlu mengalih keluar aksara tidak boleh cetak tertentu yang boleh menyebabkan isu semasa penyimpanan, paparan atau pemprosesan. Memahami cara menghapuskan aksara ini dengan cekap adalah penting.
Penyelesaian:
Untuk mengalih keluar aksara tidak boleh cetak (0-31 dan 127), pertimbangkan pilihan berikut berdasarkan pengekodan rentetan anda:
1. ASCII 7-bit:
$string = preg_replace('/[\x00-\x1F\x7F-\xFF]/', '', $string);
2. ASCII Lanjutan 8-bit:
$string = preg_replace('/[\x00-\x1F\x7F]/', '', $string);
3. UTF-8:
$string = preg_replace('/[\x00-\x1F\x7F]/u', '', $string);
4. Alternatif menggunakan str_replace:
$badchar = [...]; // Array of non-printable characters $string2 = str_replace($badchar, '', $str);
Petanda aras:
Prestasi preg_replace berbanding str_replace berbeza-beza bergantung pada panjang dan jenis rentetan. Penandaarasan pada data anda sendiri disyorkan untuk menentukan pendekatan optimum bagi kes khusus anda.
Bagaimana pula dengan Unicode?
Untuk mengalih keluar aksara Unikod tidak boleh dicetak khusus (cth., RUANG TANPA BREAK), gunakan xA0 dalam kelas aksara:
$string = preg_replace('/[\x00-\x1F\x7F\xA0]/u', '', $string);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Aksara Tidak Boleh Cetak dengan Cekap daripada Rentetan dalam Pengekodan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!