Rumah pembangunan bahagian belakang tutorial php php数组编码转换示例详解_PHP

php数组编码转换示例详解_PHP

Jun 01, 2016 am 11:55 AM
transcoding

因为一些特殊字符的显示效果的原因不得不把习惯的utf-8工程改成了GBK,由于使用了ajax技术,又涉及到了老问题——编码转换。一些表单验证需要返回json数据,php的json_encode函数只支持utf-8编码,无奈只得iconv了,需要达到的效果是GBK数组转换成utf-8数组传给json_encode函数。

最开始的思路,将数组序列化后用iconv函数转换编码,之后再反序列化,代码如下:

复制代码 代码如下:
unserialize(iconv('gbk','utf-8',serialize($array))); 

得到的结果是空白,后来想起来配置文件里设置了默认编码 ini_set('default_charset', 'gbk');   这样用gbk反序列化utf-8的字符串肯定不好用了,此处在序列化和反序列化之间加个ini_set('default_charset', 'utf-8'); 应该也是可以的,但这么弄总觉得有点别扭,因为是全局的编码设置,很容易导致其他地方的编码问题,比如数据库操作。那么换个思路,用构建数组原型的序列化方法,借助var_export函数,最终函数如下:

复制代码 代码如下:
function array_iconv($in_charset,$out_charset,$arr){ 
        return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';')); 
}

原理很简单 var_export设置第二个参数为true,返回数组原型字符串,将字符串转换为utf-8编码,之后再用eval来执行返回(类似匿名函数?),至此完美解决问题。

后续:后来在网上搜了下资料,看有没有更好的方法,找到的都大同小异,都是利用递归调用iconv的方式,如果数组元素过多或者维数多一些,性能上肯定不怎么样了,更好的是原生代码的方式,不需要考虑是N维数组还是关联数组,一切都已经自动完成,保证数组转换前后数据一致。从代码的长短以及循环和原生方法的比较上,相信大家已经有了选择。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menaip garis bawah pada komputer Cara menaip garis bawah pada komputer Feb 19, 2024 pm 08:36 PM

Cara menggaris pada komputer Apabila memasukkan teks pada komputer, kita selalunya perlu menggunakan garis bawah untuk menyerlahkan kandungan tertentu atau menandakannya. Walau bagaimanapun, bagi sesetengah orang yang tidak begitu biasa dengan kaedah input komputer, menaip garis bawah boleh menjadi agak mengelirukan. Artikel ini akan memperkenalkan anda kepada cara menggariskan pada komputer anda. Dalam sistem pengendalian komputer dan perisian yang berbeza, cara untuk memasukkan garis bawah mungkin sedikit berbeza. Berikut akan memperkenalkan kaedah biasa pada sistem pengendalian Windows dan sistem pengendalian Mac masing-masing. Mula-mula, mari kita lihat operasi dalam Windows

Terokai mekanisme pelaksanaan penukaran pengekodan golang Terokai mekanisme pelaksanaan penukaran pengekodan golang Feb 19, 2024 pm 03:21 PM

Sebagai bahasa pengaturcaraan yang berkuasa, Golang mempunyai prestasi tinggi dan keupayaan serentak, dan juga menyediakan sokongan perpustakaan standard yang kaya, termasuk sokongan untuk penukaran pengekodan. Artikel ini akan meneroka secara mendalam prinsip pelaksanaan penukaran pengekodan di Golang dan menganalisisnya dengan contoh kod khusus. Apakah transcoding? Penukaran pengekodan merujuk kepada proses menukar jujukan aksara daripada satu pengekodan kepada pengekodan yang lain. Dalam pembangunan sebenar, kita selalunya perlu mengendalikan penukaran antara pengekodan yang berbeza, seperti menukar rentetan yang dikodkan UTF-8.

Cara mudah untuk mempelajari fungsi penukaran pengekodan dedecms Cara mudah untuk mempelajari fungsi penukaran pengekodan dedecms Mar 14, 2024 pm 02:09 PM

Mempelajari fungsi penukaran pengekodan dedecms tidak rumit Contoh kod mudah boleh membantu anda menguasai kemahiran ini dengan cepat. Dalam dedecms, fungsi penukaran pengekodan biasanya digunakan untuk menangani masalah seperti aksara Cina yang kacau dan aksara khas untuk memastikan operasi normal sistem dan ketepatan data. Berikut akan memperkenalkan secara terperinci cara menggunakan fungsi penukaran pengekodan dedecms, membolehkan anda mengatasi pelbagai keperluan berkaitan pengekodan dengan mudah. 1.UTF-8 kepada GBK Dalam dedecms, jika anda perlu menukar rentetan dikodkan UTF-8 kepada G

Bagaimana untuk menangani masalah penukaran pengekodan dalam pembangunan C++ Bagaimana untuk menangani masalah penukaran pengekodan dalam pembangunan C++ Aug 22, 2023 am 11:07 AM

Cara menangani isu penukaran pengekodan dalam pembangunan C++ Semasa proses pembangunan C++, kami sering menghadapi masalah yang memerlukan penukaran antara pengekodan yang berbeza. Oleh kerana terdapat perbezaan antara format pengekodan yang berbeza, anda perlu memberi perhatian kepada beberapa butiran semasa melakukan penukaran pengekodan. Artikel ini akan memperkenalkan cara menangani isu penukaran pengekodan dalam pembangunan C++. 1. Fahami format pengekodan yang berbeza Sebelum menangani isu penukaran pengekodan, anda perlu terlebih dahulu memahami format pengekodan yang berbeza. Format pengekodan biasa termasuk ASCII, UTF-8, GBK, dsb. ASCII ialah format pengekodan terawal

Kaedah pengekodan dan penukaran yang disokong oleh PHP Kaedah pengekodan dan penukaran yang disokong oleh PHP Jun 23, 2023 am 11:46 AM

PHP ialah bahasa skrip yang digunakan secara meluas dalam pembangunan web, terutamanya pembangunan program bahagian pelayan. Dalam proses pembangunan Web, isu pengekodan adalah bahagian yang sangat penting Untuk menyelesaikan masalah pengekodan, anda perlu menguasai kaedah pengekodan dan penukaran yang disokong oleh PHP. Artikel ini akan memperkenalkan jenis pengekodan utama dan kaedah penukaran yang disokong oleh PHP. 1. Jenis pengekodan Dalam proses pembangunan Web, jenis pengekodan yang biasa digunakan adalah seperti berikut: 1. Pengekodan ASCII Kod ASCII ialah Kod Standard Amerika untuk Pertukaran Maklumat, yang boleh mewakili 127 aksara, termasuk nombor dan perkataan.

Cara menggunakan pemalam penukaran pengekodan dedecms Cara menggunakan pemalam penukaran pengekodan dedecms Mar 14, 2024 pm 06:03 PM

"Cara menggunakan pemalam penukaran pengekodan DedeCMS memerlukan contoh kod khusus" DedeCMS ialah sistem pengurusan kandungan sumber terbuka yang berkuasa dan mudah digunakan yang digunakan secara meluas dalam pelbagai pembinaan tapak web. Dalam proses menggunakan DedeCMS, kadangkala anda akan menghadapi situasi di mana anda perlu mengekod kandungan, terutamanya apabila berurusan dengan laman web berbilang bahasa atau melibatkan data dalam pengekodan yang berbeza. Untuk memudahkan operasi ini, DedeCMS menyediakan pemalam penukaran pengekodan, yang boleh menukar pengekodan kandungan dengan mudah dan meningkatkan fleksibiliti tapak web.

Pengekodan Ascii dan UTF-8 untuk MySql: Bagaimana untuk memampatkan dan menukar pengekodan aksara MySQL Pengekodan Ascii dan UTF-8 untuk MySql: Bagaimana untuk memampatkan dan menukar pengekodan aksara MySQL Jun 16, 2023 pm 12:07 PM

Dalam pangkalan data MySQL, pengekodan aksara adalah konsep yang sangat penting. Pengekodan aksara merujuk kepada cara aksara dipetakan ke dalam data binari. Terdapat banyak jenis pengekodan aksara yang disokong dalam MySQL, yang paling biasa digunakan ialah pengekodan Ascii dan pengekodan UTF-8. Kedua-dua pengekodan aksara ini memainkan peranan yang sangat penting dalam MySQL, kerana data dalam MySQL disimpan dalam bentuk aksara, dan pilihan pengekodan aksara boleh menjejaskan prestasi dan ruang pangkalan data. Pengekodan Ascii ialah kaedah pengekodan berdasarkan huruf Latin.

Menggunakan MySQL untuk melaksanakan penukaran pengekodan data dalam bahasa Go Menggunakan MySQL untuk melaksanakan penukaran pengekodan data dalam bahasa Go Jun 17, 2023 pm 08:18 PM

Dengan perkembangan globalisasi, pertukaran antara bahasa dan budaya yang berbeza telah menjadi lebih kerap dan lebih dekat. Masalah yang terhasil ialah pengekodan aksara antara bahasa dan budaya yang berbeza telah mula menjadi kompleks dan pelbagai. Apabila memproses pelbagai data, kami perlu melakukan penukaran pengekodan untuk memastikan ketepatan dan ketekalan data. Dalam bahasa Go, kita boleh menggunakan MySQL untuk melaksanakan penukaran pengekodan data. Artikel ini akan memperkenalkan secara terperinci cara menggunakan MySQL untuk melaksanakan penukaran pengekodan data dalam bahasa Go. 1. Pengekodan aksara dalam bahasa Go dan MySQL

See all articles