Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar format pengekodan output dalam php

Bagaimana untuk menukar format pengekodan output dalam php

PHPz
PHPzasal
2023-04-11 10:33:32952semak imbas

Dengan pembangunan dan aplikasi Internet yang semakin meluas, cara menukar dengan lancar antara bahasa pengaturcaraan yang berbeza​​dan format pengekodan halaman web telah menjadi sangat penting, sebagai bahasa skrip bahagian pelayan yang digunakan secara meluas , juga perlu dapat menyokong Penukaran antara format pengekodan yang berbeza, artikel ini akan memberi tumpuan kepada cara untuk mencapai penukaran format pengekodan output dalam PHP.

1. Format pengekodan

Format pengekodan ialah peraturan untuk format pengekodan biasa termasuk utf-8, gb2312, gbk, dsb. Disebabkan oleh perbezaan dalam set aksara di negara dan wilayah yang berbeza, demi keserasian dan kebolehoperasian, UTF-8 telah menjadi format pengekodan yang paling biasa digunakan. Format pengekodan utf-8 boleh menyokong set aksara berbilang bahasa dan mempunyai bilangan aksara yang agak kaya Contohnya, format pengekodan banyak halaman web semasa ialah utf-8.

2. Format pengekodan output PHP

Dalam PHP, kami biasanya menggunakan pernyataan gema untuk mengeluarkan kandungan ke penyemak imbas, tetapi kadangkala kod PHP dan format pengekodan halaman web kami tidak konsisten kali ini Kita perlu menukar format pengekodan kandungan output. Kami boleh menggunakan fungsi terbina dalam PHP iconv(), mb_convert_encoding() dan pengekodan UCL untuk mencapai penukaran format pengekodan.

  1. fungsi iconv()

fungsi iconv() ialah fungsi penukaran set aksara untuk rentetan Ia mengembalikan set aksara yang menukar rentetan daripada rentetan source_charset kepada dest_charset. Berikut ialah sintaks fungsi ini:

string iconv ( string $in_charset , string $out_charset , string $str )

Antaranya, parameter in_charset mewakili set aksara asal dan Parameter out_charset mewakili set aksara sasaran Parameter str mewakili rentetan yang perlu ditukar. Sebagai contoh, kami memasukkan kod berikut ke dalam halaman web php:

header('Content-Type: text/html; charset=utf-8');
$str = "Hello, hello! ";
echo iconv("UTF-8", "GBK//IGNORE", $str);

Coretan kod ini bermaksud menukar rentetan $str daripada utf-8 kepada Format pengekodan gbk. Hasil output ialah rentetan dalam format GBK: "Hello, hello!". Dengan cara ini, kami telah mencapai penukaran format pengekodan output.

  1. fungsi mb_convert_encoding()

Fungsi mb_convert_encoding() adalah serupa dengan fungsi iconv() dan juga digunakan untuk penukaran antara set aksara. Walau bagaimanapun, mb_convert_encoding() menyokong beberapa set aksara dan secara automatik boleh mengesan set aksara yang tidak diketahui untuk mengelakkan beberapa ralat penukaran. Berikut ialah sintaks fungsi ini:

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )

Di mana, str mewakili rentetan yang memerlukan untuk ditukar, to_encoding mewakili pengekodan sasaran, from_encoding mewakili pengekodan asal, dan fungsi mb_internal_encoding() mengembalikan format pengekodan dalaman skrip semasa Parameter di atas adalah semua parameter pilihan. Sebagai contoh, di bawah kami memasukkan coretan kod php ini ke dalam halaman web:

header('Content-Type: text/html; charset=utf-8');
$str = "Hello, hello ! ";
echo mb_convert_encoding($str, "GBK", "UTF-8");

Coretan kod ini bermaksud menukar rentetan $str daripada utf-8 kepada format pengekodan gbk. Outputnya adalah seperti berikut: "Hello, hello!". Melalui fungsi mb_convert_encoding(), kami juga boleh menukar format pengekodan dengan mudah.

  1. Pengekodan UCL

Pengekodan UCL juga merupakan format pengekodan biasa Ia merupakan alternatif kepada utf-8 dan boleh digunakan untuk mengendalikan keperluan pelayar dalam . Dalam php, kita boleh menggunakan fungsi ucl_encode() dan ucl_decode() untuk menukar format pengekodan. Berikut ialah sintaks fungsi ini:

string ucl_decode ( string $var )

Antaranya, parameter var mewakili rentetan yang perlu dinyahkodkan. Sebagai contoh, coretan kod php berikut:

header('Content-Type: text/html; charset=ucl-1');
$str = ucl_encode("Hello, hello!");
echo ucl_decode($str);

Kod ini bermaksud menggunakan fungsi ucl_encode() untuk menukar format pengekodan rentetan $str dan kemudian gunakan fungsi ucl_decode() untuk menyahkodnya. Memandangkan kami menetapkan pengekodan format output header('Content-Type:text/html; charset=ucl-1'), kod kami akhirnya boleh dikeluarkan dengan betul dalam penyemak imbas: "Hello, hello!" juga melengkapkan penukaran format pengekodan.

3. Ringkasan

Sebagai bahasa skrip bahagian pelayan yang digunakan secara meluas, php boleh menukar format pengekodan dalam banyak senario, menjadikannya lebih mudah untuk kami membaca maklumat daripada set aksara dalam format pengekodan yang berbeza. Ambil dan proses, anda juga boleh cuba keluarkan ke halaman web yang berbeza. Kita boleh menggunakan fungsi seperti iconv(), mb_convert_encoding() dan pengekodan UCL untuk mencapai penukaran format pengekodan. Tidak kira fungsi yang kita gunakan, kita perlu menetapkan set aksara input dan output yang betul dalam kod untuk memastikan output adalah betul, boleh dibaca dan mesra pengguna.

Atas ialah kandungan terperinci Bagaimana untuk menukar format pengekodan output dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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