Rumah >pembangunan bahagian belakang >masalah PHP >php menukar tatasusunan kepada utf8
Semasa proses pembangunan menggunakan PHP, kami selalunya perlu menangani isu pengekodan aksara Cina. Salah satu masalah yang lebih biasa ialah menukar tatasusunan kepada pengekodan UTF-8. Masalah ini amat biasa apabila pembangun domestik menggunakan bahasa Cina untuk pembangunan Sebabnya ialah kaedah pengekodan aksara Cina berbeza daripada bahasa Inggeris, dan kaedah pengekodan yang berbeza perlu digunakan untuk pemprosesan. Di bawah ini kami akan menerangkan cara menukar tatasusunan kepada pengekodan UTF-8.
1. Memahami pengekodan aksara
Sebelum memperkenalkan cara menukar tatasusunan kepada pengekodan UTF-8, kita perlu terlebih dahulu memahami pengetahuan yang berkaitan tentang pengekodan aksara. Pengekodan aksara merujuk kepada proses pemetaan aksara kepada data binari. Dalam komputer, semua aksara disimpan dalam bentuk nombor binari. Pengekodan aksara membolehkan komputer menukar aksara dalam bahasa yang berbeza apabila menyimpan dan memprosesnya dengan betul Kaedah pengekodan aksara biasa termasuk ASCII, Unicode dan UTF-8.
Pengekodan ASCII merujuk kepada penggunaan nombor binari 7-bit untuk mewakili 128 aksara Kaedah pengekodan ini hanya sesuai untuk perwakilan huruf Inggeris dan beberapa simbol khas, dan tidak boleh mewakili bahasa negara lain. dan wilayah.
Pengekodan Unikod merujuk kepada penggunaan dua atau empat bait nombor perduaan untuk mewakili semua aksara di dunia, termasuk bahasa Cina, Jepun, Korea dan bahasa lain Walau bagaimanapun, kaedah pengekodan ini agak besar dan kecekapan penyimpanan dan penghantaran adalah agak rendah.
Pengekodan UTF-8 merujuk kepada penggunaan satu hingga empat bait nombor perduaan untuk mewakili semua aksara Dalam kaedah pengekodan ini, setiap aksara mempunyai perwakilan nombor perduaan yang unik. Kaedah pengekodan ini bukan sahaja menyokong set aksara ASCII, tetapi juga termasuk bahasa dari negara dan wilayah lain.
2. Cara menggunakan PHP untuk menukar tatasusunan kepada pengekodan UTF-8
Dalam PHP, kita boleh menggunakan pelbagai fungsi untuk menukar tatasusunan kepada pengekodan UTF-8. Di bawah ini kami akan memperkenalkan dua kaedah yang lebih biasa digunakan.
Fungsi 1.array_map
array_map() ialah fungsi yang lebih praktikal dalam PHP Fungsinya adalah untuk menghantar setiap elemen satu atau lebih tatasusunan sebagai parameter kepada fungsi Memprosesnya dan mengembalikannya nilai yang diproses. Apabila menukar tatasusunan kepada pengekodan UTF-8, kita boleh menggunakan fungsi array_map() untuk pemprosesan. Berikut ialah cara menggunakan fungsi array_map():
$array = array('测试1', '测试2', '测试3'); function utf8($str){ return mb_convert_encoding($str, 'utf-8', 'gb2312'); } $newArray = array_map('utf8', $array); print_r($newArray);
Dalam kod di atas, kita mula-mula mentakrifkan array $array, dan kemudian mentakrifkan fungsi panggil balik utf8(), yang menggunakan fungsi mb_convert_encoding() Convert rentetan daripada pengekodan gb2312 kepada pengekodan utf-8. Kemudian gunakan fungsi array_map() untuk menggunakan fungsi panggil balik pada setiap elemen dalam tatasusunan $array, dan tetapkan hasilnya kepada tatasusunan $newArray. Akhir sekali, gunakan fungsi print_r() untuk mengeluarkan tatasusunan $newArray Anda boleh melihat bahawa semua elemen dalam tatasusunan output telah berjaya ditukar kepada pengekodan UTF-8.
Fungsi 2.array_walk_recursive
Fungsi lain yang biasa digunakan untuk menukar tatasusunan kepada pengekodan UTF-8 ialah array_walk_recursive(). Fungsi ini ialah fungsi yang digunakan untuk melintasi tatasusunan berbilang dimensi Ia boleh digunakan untuk melintasi semua elemen dalam tatasusunan dan melaksanakan operasi yang ditentukan pada setiap elemen.
$array = array( '测试1'=>array('子项1'=>'汉字'), '测试2'=>array('子项2'=>'汉字'), '测试3'=>array('子项3'=>'汉字') ); function utf8(&$value){ $value = mb_convert_encoding($value, 'utf-8', 'gb2312'); } array_walk_recursive($array, 'utf8'); print_r($array);
Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan berbilang dimensi $array, kemudian mentakrifkan fungsi panggil balik utf8(), dan gunakan fungsi mb_convert_encoding() untuk menukar rentetan daripada pengekodan gb2312 kepada utf-8 kaedah pengekodan. Kemudian gunakan fungsi array_walk_recursive() untuk menghantar setiap elemen dalam tatasusunan sebagai parameter kepada fungsi utf8() untuk diproses. Akhir sekali, gunakan fungsi print_r() untuk mengeluarkan tatasusunan $array Anda boleh melihat bahawa semua elemen dalam tatasusunan output telah berjaya ditukar kepada pengekodan UTF-8.
3. Ringkasan
Semasa proses pembangunan PHP, kita selalunya perlu berurusan dengan pengekodan aksara Cina. Menukar tatasusunan kepada pengekodan UTF-8 ialah salah satu masalah biasa, yang boleh dikendalikan dengan mudah menggunakan fungsi yang disediakan oleh PHP seperti array_map() dan array_walk_recursive(). Kaedah yang diperkenalkan di atas boleh digunakan untuk isu pengekodan aksara Cina dalam pelbagai senario pembangunan PHP. Saya harap ia akan membantu kebanyakan pembangun PHP.
Atas ialah kandungan terperinci php menukar tatasusunan kepada utf8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!