Rumah php教程 php手册 PHP自动识别字符集编码并完成转码

PHP自动识别字符集编码并完成转码

May 25, 2016 pm 04:44 PM
set watak pengekodan pengecaman automatik

原理很简单,因为gb2312/gbk是中文两字节,这两个字节是有取值范围的,而utf-8中汉字是三字节,同样每个字节也有取值范围,而英文不管在何种编码情况下,都是小于128,只占用一个字节,全角除外.

在PHP处理页面的时候,我们对于字符集的转换都是采用了iconv或者mb_convert等函数,但这其实是有一个前提的,即我们事先得知道in和out是什么样的编码,我们才能进行正确的转换.

下面这个函数,就可以在不知道源字符串编码的情况下,自动判断其编码并进行转换,虽然只支持UTF8编码和GB2312编码,但对于国内绝大多数网站来说,已经够用了,代码如下:

<?php
function safeEncoding($string, $outEncoding = &#39;UTF-8&#39;) {
    $encoding = "UTF-8";
    for ($i = 0; $i < 128) continue;
    if ((ord($string{$i}) & 224) == 224) {
        //第一个字节判断通过
        $char = $string{++$i};
        if ((ord($char) & 128) == 128) {
            //第二个字节判断通过
            $char = $string{++$i};
            if ((ord($char) & 128) == 128) {
                $encoding = "UTF-8";
                break;
            }
        }
    }
    if ((ord($string{$i}) & 192) == 192) {
        //第一个字节判断通过
        $char = $string{++$i};
        if ((ord($char) & 128) == 128) {
            //第二个字节判断通过
            $encoding = "GB2312";
            break;
        }
    }
}
if (strtoupper($encoding) == strtoupper($outEncoding)) return $string;
else return iconv($encoding, $outEncoding, $string);
}
?>
Salin selepas log masuk

识别汉字编码,因为YBlog用的是utf-8,如果引用通告发过来的是gb2312的编码的话,需要可以识别并完成编码转换,代码如下:

<?php
function safeEncoding($string, $outEncoding = &#39;UTF-8&#39;) {
    $encoding = "UTF-8";
    for ($i = 0; $i < strlen($string); $i++) {
        if (ord($string{$i}) < 128) continue;
        if ((ord($string{$i}) & 224) == 224) {
            //第一个字节判断通过
            $char = $string{++$i};
            if ((ord($char) & 128) == 128) {
                //第二个字节判断通过
                $char = $string{++$i};
                if ((ord($char) & 128) == 128) {
                    $encoding = "UTF-8";
                    break;
                }
            }
        }
        if ((ord($string{$i}) & 192) == 192) {
            //第一个字节判断通过
            $char = $string{++$i};
            if ((ord($char) & 128) == 128) {
                //第二个字节判断通过
                $encoding = "GB2312";
                break;
            }
        }
    }
    if (strtoupper($encoding) == strtoupper($outEncoding)) return $string;
    else return iconv($encoding, $outEncoding, $string);
}
?>
Salin selepas log masuk

               
               

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 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 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)

11 teknik pengekodan ciri klasifikasi biasa 11 teknik pengekodan ciri klasifikasi biasa Apr 12, 2023 pm 12:16 PM

Algoritma pembelajaran mesin hanya menerima input berangka, jadi jika kami menemui ciri kategori, kami akan mengekodkan ciri kategori Artikel ini meringkaskan 11 kaedah pengekodan pembolehubah kategori biasa. 1. ONE HOT ENCOD Kaedah pengekodan yang paling popular dan biasa digunakan ialah One Hot Enoding. Pembolehubah tunggal dengan n pemerhatian dan d nilai berbeza ditukar kepada d pembolehubah binari dengan n pemerhatian, setiap pembolehubah binari dikenal pasti dengan sedikit (0, 1). Contohnya: pelaksanaan paling mudah selepas pengekodan ialah menggunakan get_dummiesnew_df=pd.get_dummies(columns=[‘Sex’], data=df)2, panda,

Berapa banyak bait yang diduduki oleh aksara Cina yang dikodkan utf8? Berapa banyak bait yang diduduki oleh aksara Cina yang dikodkan utf8? Feb 21, 2023 am 11:40 AM

Aksara Cina yang dikodkan UTF8 menduduki 3 bait. Dalam pengekodan UTF-8, satu aksara Cina bersamaan dengan tiga bait, dan satu tanda baca bahasa Cina menduduki tiga bait manakala dalam pengekodan Unicode, satu aksara Cina (termasuk bahasa Cina tradisional) adalah sama dengan dua bait; UTF-8 menggunakan 1~4 bait untuk mengekod setiap aksara Satu aksara AS-ASCIl hanya memerlukan 1 bait untuk mengekod Latin, Yunani, Cyrillic, Armenia dan Ibrani dengan tanda diakritik , Arab, Syria dan huruf lain pengekodan.

Graf pengetahuan: rakan kongsi yang ideal untuk model besar Graf pengetahuan: rakan kongsi yang ideal untuk model besar Jan 29, 2024 am 09:21 AM

Model bahasa besar (LLM) mempunyai keupayaan untuk menghasilkan teks yang lancar dan koheren, membawa prospek baharu ke bidang seperti perbualan kecerdasan buatan dan penulisan kreatif. Walau bagaimanapun, LLM juga mempunyai beberapa had utama. Pertama, pengetahuan mereka terhad kepada corak yang diiktiraf daripada data latihan, kurang pemahaman sebenar tentang dunia. Kedua, kemahiran menaakul adalah terhad dan tidak boleh membuat inferens logik atau menggabungkan fakta daripada pelbagai sumber data. Apabila berhadapan dengan soalan yang lebih kompleks dan terbuka, jawapan LLM mungkin menjadi tidak masuk akal atau bercanggah, dikenali sebagai "ilusi." Oleh itu, walaupun LLM sangat berguna dalam beberapa aspek, ia masih mempunyai had tertentu apabila berhadapan dengan masalah kompleks dan situasi dunia sebenar. Untuk merapatkan jurang ini, sistem penjanaan dipertingkatkan semula (RAG) telah muncul dalam beberapa tahun kebelakangan ini

Beberapa kaedah pengekodan biasa Beberapa kaedah pengekodan biasa Oct 24, 2023 am 10:09 AM

Kaedah pengekodan biasa termasuk pengekodan ASCII, pengekodan Unikod, pengekodan UTF-8, pengekodan UTF-16, pengekodan GBK, dsb. Pengenalan terperinci: 1. Pengekodan ASCII ialah standard pengekodan aksara yang paling awal, menggunakan nombor perduaan 7-bit untuk mewakili 128 aksara, termasuk huruf Inggeris, nombor, tanda baca, aksara kawalan, dsb. 2. Pengekodan Unikod ialah kaedah yang digunakan untuk mewakili semua aksara di dunia Kaedah pengekodan standard aksara, yang memberikan titik kod digital yang unik kepada setiap aksara 3. Pengekodan UTF-8, dsb.

Bagaimana untuk menyelesaikan masalah pengekodan hasil pertanyaan pangkalan data php Bagaimana untuk menyelesaikan masalah pengekodan hasil pertanyaan pangkalan data php Mar 21, 2023 am 11:49 AM

PHP ialah bahasa pengaturcaraan web yang popular yang boleh digunakan untuk menulis halaman web dan aplikasi dinamik. Dalam aplikasi praktikal, PHP selalunya perlu berinteraksi dengan pangkalan data untuk membuat pertanyaan dan memproses data. Walau bagaimanapun, apabila menggunakan PHP untuk mendapatkan hasil daripada pangkalan data, anda mungkin menghadapi masalah pengekodan, yang sering mengakibatkan aksara bercelaru. Jadi, bagaimana untuk menyelesaikan masalah pengekodan hasil pertanyaan pangkalan data PHP?

Petua pengekodan PHP: Bagaimana untuk menjana kod QR dengan fungsi pengesahan anti-pemalsuan? Petua pengekodan PHP: Bagaimana untuk menjana kod QR dengan fungsi pengesahan anti-pemalsuan? Aug 17, 2023 pm 02:42 PM

Petua pengekodan PHP: Bagaimana untuk menjana kod QR dengan fungsi pengesahan anti-pemalsuan? Dengan perkembangan e-dagang dan Internet, kod QR semakin digunakan dalam pelbagai industri. Dalam proses menggunakan kod QR, untuk memastikan keselamatan produk dan mencegah pemalsuan, adalah sangat penting untuk menambah fungsi pengesahan anti-pemalsuan pada kod QR. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menjana kod QR dengan fungsi pengesahan anti-pemalsuan dan melampirkan contoh kod yang sepadan. Sebelum memulakan, kita perlu menyediakan alatan dan perpustakaan yang diperlukan berikut: PHPQRCode: PHP

Perisian AI secara automatik boleh mengenal pasti tablet cuneiform purba, dan penyelidik telah membuat satu kejayaan Perisian AI secara automatik boleh mengenal pasti tablet cuneiform purba, dan penyelidik telah membuat satu kejayaan Nov 24, 2023 pm 02:26 PM

Berita pada 24 November: Kepintaran buatan baharu yang dibangunkan oleh pasukan dari Martin Luther University Halle-Wittenberg (MLU), Johannes Gutenberg University Mainz dan Mainz University of Applied Sciences Software kini boleh mentafsir skrip cuneiform yang tidak boleh dibaca. Tidak seperti kaedah sebelumnya yang bergantung pada foto, sistem AI ini menggunakan model 3D tablet cuneiform, memberikan hasil yang lebih dipercayai daripada kaedah sebelumnya. Ini membolehkan carian dengan membandingkan kandungan merentas berbilang bahagian, membuka jalan kepada soalan penyelidikan yang baharu sepenuhnya. Dalam kajian baharu itu, para penyelidik menggunakan model 3D hampir 2,000 tablet cuneiform, termasuk kira-kira 50 daripada koleksi MLU. Dianggarkan terdapat kira-kira sejuta tablet sebegitu yang tinggal di seluruh dunia, kebanyakannya berusia lebih 5,000 tahun.

Ketahui cara meningkatkan prestasi pengekodan berdasarkan GenAI dalam satu artikel Ketahui cara meningkatkan prestasi pengekodan berdasarkan GenAI dalam satu artikel Apr 01, 2024 pm 06:49 PM

Hellofolks, nama saya Luga, dan hari ini kita akan bercakap tentang teknologi yang berkaitan dengan bidang ekologi kecerdasan buatan (AI) - GenAI. Menghadapi cabaran inovasi teknologi yang pesat dan senario perniagaan yang berbeza, kaedah pengekodan tradisional telah mula disesuaikan dan tidak dapat menampung sepenuhnya permintaan yang semakin meningkat. Pada masa yang sama, GenAI (teknologi kecerdasan buatan) tujuan am yang baru muncul mempunyai potensi besar untuk memenuhi permintaan ini. Sebagai wakil teknologi kecerdasan buatan, GenAI telah mula digunakan secara meluas dalam semua lapisan masyarakat dengan potensi dan keupayaannya yang kukuh. Ia secara automatik boleh belajar dan menyesuaikan diri dengan keperluan pengekodan dalam senario yang berbeza, meningkatkan kecekapan dan kualiti pengekodan. Melalui pembelajaran mendalam dan pengoptimuman model, GenAI dapat memahami perbezaan dengan tepat

See all articles