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
引用其一句话:准备好咖啡、可乐,做好准备,可能要折腾数小时…

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Analyse der Go-Sprachkodierung: UTF-8 vs. GBK-Vergleich In der Go-Sprache ist die Verarbeitung der String-Kodierung eine der häufigsten Aufgaben. Unter diesen sind UTF-8 und GBK zwei häufig verwendete Zeichenkodierungsmethoden. In diesem Artikel wird ein detaillierter Vergleich zwischen UTF-8 und GBK durchgeführt, deren Unterschiede und Verwendung erläutert und spezifische Codebeispiele beigefügt. 1. Einführung in UTF-8 und GBK UTF-8: UTF-8 ist eine Unicode-Codierungsmethode mit variabler Länge, die Zeichen in fast allen Sprachen der Welt darstellen kann. UTF-8

Speicherort für den Download der Empire CMS-Vorlage: Offizieller Vorlagen-Download: https://www.phome.net/template/ Vorlagen-Website eines Drittanbieters: https://www.dedecms.com/diy/https://www.0978.com. cn /https://www.jiaocheng.com/Installationsmethode: Vorlage herunterladen Vorlage entpacken Vorlage hochladen Vorlage auswählen

Der Vorlagenaustausch kann in Dedecms durch die folgenden Schritte implementiert werden: Ändern Sie die Datei global.cfg und legen Sie das erforderliche Sprachpaket fest. Ändern Sie die Hook-Datei taglib.inc.php und fügen Sie Unterstützung für Sprachsuffix-Vorlagendateien hinzu. Erstellen Sie eine neue Vorlagendatei mit einem Sprachsuffix und ändern Sie den erforderlichen Inhalt. Dedecms-Cache leeren.

Dedecms ist ein Open-Source-CMS, mit dem verschiedene Arten von Websites erstellt werden können, darunter Nachrichten-Websites, Blog-Websites, E-Commerce-Websites, Foren und Community-Websites, Bildungswebsites, Portal-Websites und andere Arten von Websites (z. B. Unternehmenswebsites). , persönliche Websites, Fotoalbum-Websites, Video-Sharing-Website)

Wie lade ich lokale Videos mit Dedecms hoch? Bereiten Sie die Videodatei in einem Format vor, das von Dedecms unterstützt wird. Melden Sie sich beim Dedecms-Verwaltungs-Backend an und erstellen Sie eine neue Videokategorie. Laden Sie Videodateien auf der Videoverwaltungsseite hoch, geben Sie die relevanten Informationen ein und wählen Sie die Videokategorie aus. Um beim Bearbeiten eines Artikels ein Video einzubetten, geben Sie den Dateinamen des hochgeladenen Videos ein und passen Sie dessen Abmessungen an.

Dedecms ist ein chinesisches Open-Source-CMS-System, das Inhaltsverwaltung, Vorlagensystem und Sicherheitsschutz bietet. Die spezifische Verwendung umfasst die folgenden Schritte: 1. Dedecms installieren. 2. Konfigurieren Sie die Datenbank. 3. Melden Sie sich bei der Verwaltungsoberfläche an. 4. Inhalte erstellen. 5. Richten Sie die Vorlage ein. 6. Benutzer verwalten. 7. Warten Sie das System.

DedeCMS ist ein Open-Source-Content-Management-System, das einige potenzielle Schwachstellen und Sicherheitsrisiken aufweist: 1. SQL-Injection-Schwachstelle. Angreifer können nicht autorisierte Vorgänge ausführen oder vertrauliche Daten erhalten, indem sie bösartige SQL-Abfrageanweisungen erstellen. 2. Datei-Upload-Schwachstelle bösartiger Code an den Server, um beliebigen Code auszuführen oder Serverberechtigungen zu erhalten; 3. Verlust vertraulicher Informationen; 4. Nicht authentifizierte Ausnutzung von Sicherheitslücken;

Präziser und zuverlässiger Evaluierungsbericht zum Dedecms-Konvertierungstool Mit der rasanten Entwicklung des Internetzeitalters ist die Website-Erstellung für viele Unternehmen und Einzelpersonen zu einem der notwendigen Werkzeuge geworden. Bei der Website-Erstellung kann der Einsatz eines Content-Management-Systems (CMS) die Inhalte und Funktionen der Website bequemer und effizienter verwalten. Unter anderem wird dedecms als bekanntes CMS-System häufig in verschiedenen Website-Erstellungsprojekten verwendet. Manchmal stehen wir jedoch vor der Notwendigkeit, die dedecms-Website in andere Formate zu konvertieren. In diesem Fall müssen wir ein Konvertierungstool verwenden
