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

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

May 25, 2016 pm 04:44 PM
字符集 编码 reconnaissance automatique

原理很简单,因为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);
}
?>
Copier après la connexion

识别汉字编码,因为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);
}
?>
Copier après la connexion

               
               

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 techniques courantes d'encodage des caractéristiques de classification 11 techniques courantes d'encodage des caractéristiques de classification Apr 12, 2023 pm 12:16 PM

Les algorithmes d'apprentissage automatique n'acceptent que les entrées numériques, donc si nous rencontrons des caractéristiques catégorielles, nous coderons les caractéristiques catégorielles. Cet article résume 11 méthodes courantes de codage de variables catégorielles. 1. ONE HOT ENCODING La méthode d’encodage la plus populaire et la plus couramment utilisée est One Hot Enoding. Une unique variable à n observations et d valeurs distinctes est convertie en d variables binaires à n observations, chaque variable binaire est identifiée par un bit (0, 1). Par exemple : l'implémentation la plus simple après l'encodage consiste à utiliser get_dummiesnew_df=pd.get_dummies(columns=[‘Sex’], data=df)2 de pandas,

Combien d'octets les caractères chinois codés en utf8 occupent-ils ? Combien d'octets les caractères chinois codés en utf8 occupent-ils ? Feb 21, 2023 am 11:40 AM

Les caractères chinois codés en UTF8 occupent 3 octets. En codage UTF-8, un caractère chinois équivaut à trois octets et un signe de ponctuation chinois occupe trois octets, tandis qu'en codage Unicode, un caractère chinois (y compris le chinois traditionnel) équivaut à deux octets. UTF-8 utilise 1 à 4 octets pour coder chaque caractère. Un caractère US-ASCIl n'a besoin que de 1 octet pour coder. Le latin, le grec, le cyrillique, l'arménien et l'hébreu avec des signes diacritiques, l'arabe, le syriaque et d'autres lettres nécessitent 2 octets. codage.

Knowledge graph : le partenaire idéal des grands modèles Knowledge graph : le partenaire idéal des grands modèles Jan 29, 2024 am 09:21 AM

Les grands modèles linguistiques (LLM) ont la capacité de générer un texte fluide et cohérent, ouvrant de nouvelles perspectives dans des domaines tels que la conversation par intelligence artificielle et l'écriture créative. Cependant, le LLM présente également certaines limites clés. Premièrement, leurs connaissances se limitent aux modèles reconnus à partir des données de formation, sans une véritable compréhension du monde. Deuxièmement, les capacités de raisonnement sont limitées et ne peuvent pas faire de déductions logiques ni fusionner des faits provenant de plusieurs sources de données. Face à des questions plus complexes et ouvertes, les réponses de LLM peuvent devenir absurdes ou contradictoires, ce que l'on appelle des « illusions ». Par conséquent, bien que le LLM soit très utile à certains égards, il présente néanmoins certaines limites lorsqu’il s’agit de problèmes complexes et de situations du monde réel. Afin de combler ces lacunes, des systèmes de génération augmentée par récupération (RAG) ont vu le jour ces dernières années.

Plusieurs méthodes de codage courantes Plusieurs méthodes de codage courantes Oct 24, 2023 am 10:09 AM

Les méthodes de codage courantes incluent le codage ASCII, le codage Unicode, le codage UTF-8, le codage UTF-16, le codage GBK, etc. Introduction détaillée : 1. Le codage ASCII est la première norme de codage de caractères, utilisant des nombres binaires de 7 bits pour représenter 128 caractères, y compris des lettres anglaises, des chiffres, des signes de ponctuation, des caractères de contrôle, etc. 2. Le codage Unicode est une méthode utilisée pour représenter ; tous les caractères du monde La méthode d'encodage standard des caractères, qui attribue un point de code numérique unique à chaque caractère 3. Encodage UTF-8, etc.

Comment résoudre le problème de l'encodage des résultats des requêtes de la base de données PHP Comment résoudre le problème de l'encodage des résultats des requêtes de la base de données PHP Mar 21, 2023 am 11:49 AM

PHP est un langage de programmation Web populaire qui peut être utilisé pour écrire des pages Web et des applications dynamiques. Dans les applications pratiques, PHP doit souvent interagir avec la base de données pour interroger et traiter les données. Cependant, lorsque vous utilisez PHP pour obtenir des résultats à partir d'une base de données, vous pouvez rencontrer des problèmes d'encodage, qui entraînent souvent des caractères tronqués. Alors, comment résoudre le problème de l’encodage des résultats des requêtes de la base de données PHP ?

Conseils de codage PHP : Comment générer un code QR avec fonction de vérification anti-contrefaçon ? Conseils de codage PHP : Comment générer un code QR avec fonction de vérification anti-contrefaçon ? Aug 17, 2023 pm 02:42 PM

Conseils de codage PHP : Comment générer un code QR avec fonction de vérification anti-contrefaçon ? Avec le développement du commerce électronique et d’Internet, les codes QR sont de plus en plus utilisés dans divers secteurs. Lors de l'utilisation des codes QR, afin de garantir la sécurité des produits et de prévenir la contrefaçon, il est très important d'ajouter des fonctions de vérification anti-contrefaçon aux codes QR. Cet article expliquera comment utiliser PHP pour générer un code QR avec fonction de vérification anti-contrefaçon et joindra des exemples de code correspondants. Avant de commencer, nous devons préparer les outils et bibliothèques nécessaires suivants : PHPQRCode : PHP

Un logiciel d'IA peut identifier automatiquement d'anciennes tablettes cunéiformes, et les chercheurs ont fait une percée Un logiciel d'IA peut identifier automatiquement d'anciennes tablettes cunéiformes, et les chercheurs ont fait une percée Nov 24, 2023 pm 02:26 PM

Actualité du 24 novembre : Une nouvelle intelligence artificielle développée par une équipe de l'Université Martin Luther de Halle-Wittenberg (MLU), de l'Université Johannes Gutenberg de Mayence et de l'Université des sciences appliquées de Mayence Software peut désormais déchiffrer l'écriture cunéiforme illisible. Contrairement aux méthodes précédentes qui reposaient sur des photos, ce système d'IA utilise des modèles 3D de tablettes cunéiformes, fournissant des résultats plus fiables que les méthodes précédentes. Cela permet des recherches en comparant le contenu sur plusieurs tranches, ouvrant la voie à des questions de recherche entièrement nouvelles. Dans la nouvelle étude, les chercheurs ont utilisé des modèles 3D de près de 2 000 tablettes cunéiformes, dont une cinquantaine de la collection MLU. On estime qu’il existe environ un million de tablettes de ce type dans le monde, dont beaucoup ont plus de 5 000 ans.

Découvrez comment améliorer les performances de codage basées sur GenAI dans un article Découvrez comment améliorer les performances de codage basées sur GenAI dans un article Apr 01, 2024 pm 06:49 PM

Bonjour les amis, je m'appelle Luga et aujourd'hui nous parlerons des technologies liées au domaine écologique de l'intelligence artificielle (IA) - GenAI. Face aux défis d'une innovation technologique rapide et de scénarios commerciaux différenciés, les méthodes de codage traditionnelles ont commencé à s'acclimater et ne peuvent pas pleinement répondre aux demandes croissantes. Dans le même temps, la nouvelle GenAI (technologie d’intelligence artificielle) à usage général présente un grand potentiel pour répondre à cette demande. En tant que représentant de la technologie de l'intelligence artificielle, GenAI a commencé à être largement utilisé dans tous les domaines grâce à son fort potentiel et ses capacités. Il peut automatiquement apprendre et s'adapter aux besoins de codage dans différents scénarios, améliorant ainsi considérablement l'efficacité et la qualité du codage. Grâce à l'apprentissage profond et à l'optimisation des modèles, GenAI est capable de comprendre avec précision différents

See all articles