php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总,htmlspecialchars
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总,htmlspecialchars
从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,htmlentities非常少用到。
可能老外认为网页普遍应该是utf-8编码的,于是苦了那些用GB2312,GBK编码的中文站......!
具体表现:
复制代码 代码如下:
$str = "9enjoy.com的php版本是5.2.10";
echo htmlspecialchars($str);
gbk字符集下输出为空...utf-8下,输出正常。
为什么呢,原因在于5.4.0对这个函数的变化:
复制代码 代码如下:
5.4.0 The default value for the encoding parameter was changed to UTF-8.
原来是什么呢?
复制代码 代码如下:
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' [, bool $double_encode = true ]]] )
Defines encoding used in conversion. If omitted, the default value for this argument is ISO-8859-1 in versions of PHP prior to 5.4.0, and UTF-8 from PHP 5.4.0 onwards.
原来是ISO-8859-1,5.4后默认变成utf-8!然后中文使用这个函数就输出为空白了。
国内一堆开源程序在5.4下都会有这样的问题,DISCUZ官方也建议用户不要升级到5.4
解决方案:
1.苦逼的修改所有用到htmlspecialchars地方的程序
1.1 其第二个$flags参数,默认是ENT_COMPAT,因此改成
复制代码 代码如下:
htmlspecialchars($str,ENT_COMPAT,'GB2312');
为什么不是GBK?因为没有GBK这个参数,如果强行使用GBK,则报错给你看:
复制代码 代码如下:
Warning: htmlspecialchars(): charset `gbk' not supported, assuming utf-8
为了能使用GBK,则改成:
复制代码 代码如下:
htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');
1.2.一样是改程序,但可以省略一个参数。
可以在网页头部加
复制代码 代码如下:
ini_set('default_charset','gbk');
然后改成
复制代码 代码如下:
htmlspecialchars($str,ENT_COMPAT,'');
文档中有写:An empty string activates detection from script encoding (Zend multibyte), default_charset and current locale (see nl_langinfo() and setlocale()), in this order. Not recommended.
大概意思就是:传入空字符串则使用default_charset的编码
1.3.封装一个函数吧...本来htmlspecialchars这个单词一直不好记。
复制代码 代码如下:
function htmlout($str) {
return htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');
}
然后去批量替换。
2.直接修改源码,重编译!这也是目前我在线上做的方案。
修改ext/standard/html.c
大概在372行
复制代码 代码如下:
/* Default is now UTF-8 */
if (charset_hint == NULL)
return cs_utf_8;
把cs_utf_8改成 cs_8859_1
复制代码 代码如下:
/* Default is now UTF-8 */
if (charset_hint == NULL)
return cs_8859_1;
编译后,原程序就不用做任何调整了。
安装方法可参考:http://www.bkjia.com/article/63388.htm
windows下怎么办?这个,自己想办法编译吧,难度比较大...
提供一个网址供参考:http://www.bkjia.com/article/63391.htm
引用其一句话:准备好咖啡、可乐,做好准备,可能要折腾数小时…

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Analyse de l'encodage du langage Go : comparaison UTF-8 et GBK Dans le langage Go, le traitement de l'encodage des chaînes est l'une des tâches courantes. Parmi eux, UTF-8 et GBK sont deux méthodes de codage de caractères couramment utilisées. Cet article effectuera une comparaison détaillée entre UTF-8 et GBK, discutera de leurs différences et de leur utilisation, et joindra des exemples de code spécifiques. 1. Introduction à UTF-8 et GBK UTF-8 : UTF-8 est une méthode de codage Unicode de longueur variable qui peut représenter des caractères dans presque toutes les langues du monde. UTF-8

Emplacement de téléchargement du modèle Empire CMS : Téléchargement du modèle officiel : https://www.phome.net/template/ Site Web du modèle tiers : https://www.dedecms.com/diy/https://www.0978.com. cn /https://www.jiaocheng.com/Méthode d'installation : Télécharger le modèle Décompresser le modèle Télécharger le modèle Sélectionner le modèle

Le remplacement du modèle peut être implémenté dans Dedecms en suivant les étapes suivantes : modifier le fichier global.cfg et définir le pack de langue requis. Modifiez le fichier hook taglib.inc.php et ajoutez la prise en charge des fichiers modèles de suffixes de langue. Créez un nouveau fichier modèle avec un suffixe de langue et modifiez le contenu requis. Videz le cache Dedecms.

Dedecms est un CMS open source qui peut être utilisé pour créer différents types de sites Web, notamment : des sites Web d'actualités, des sites Web de blogs, des sites Web de commerce électronique, des forums et des sites Web communautaires, des sites Web éducatifs, des sites Web portails, d'autres types de sites Web (tels que des sites Web d'entreprise). , sites Web personnels, sites Web d'albums photos, sites Web de partage de vidéos)

Comment mettre en ligne des vidéos locales à l'aide de Dedecms ? Préparez le fichier vidéo dans un format pris en charge par Dedecms. Connectez-vous au backend de gestion Dedecms et créez une nouvelle catégorie de vidéo. Téléchargez des fichiers vidéo sur la page de gestion vidéo, remplissez les informations pertinentes et sélectionnez la catégorie vidéo. Pour intégrer une vidéo lors de l'édition d'un article, saisissez le nom de fichier de la vidéo téléchargée et ajustez ses dimensions.

Dedecms est un système CMS chinois open source qui assure la gestion de contenu, un système de modèles et une protection de sécurité. L'utilisation spécifique comprend les étapes suivantes : 1. Installez Dedecms. 2. Configurez la base de données. 3. Connectez-vous à l'interface de gestion. 4. Créez du contenu. 5. Configurez le modèle. 6. Gérer les utilisateurs. 7. Entretenir le système.

Rapport d'évaluation de l'outil de conversion dedecms précis et fiable Avec le développement rapide de l'ère Internet, la construction de sites Web est devenue l'un des outils nécessaires pour de nombreuses entreprises et particuliers. Dans la construction de sites Web, l’utilisation d’un système de gestion de contenu (CMS) peut gérer le contenu et les fonctions du site Web de manière plus pratique et plus efficace. Parmi eux, dedecms, en tant que système CMS bien connu, est largement utilisé dans divers projets de construction de sites Web. Cependant, nous sommes parfois confrontés à la nécessité de convertir le site Web dedecms vers d'autres formats, auquel cas nous devons utiliser un outil de conversion.

L'apprentissage de la fonction de conversion d'encodage dedecms n'est pas compliqué. Des exemples de code simples peuvent vous aider à maîtriser rapidement cette compétence. Dans les dedecms, la fonction de conversion de codage est généralement utilisée pour traiter des problèmes tels que les caractères chinois tronqués et les caractères spéciaux afin de garantir le fonctionnement normal du système et l'exactitude des données. Ce qui suit présentera en détail comment utiliser la fonction de conversion d'encodage de dedecms, vous permettant de faire face facilement à divers besoins liés à l'encodage. 1.UTF-8 en GBK En dedecms, si vous devez convertir une chaîne codée UTF-8 en G
