iconv函数和mb_convert_encoding函数转码的问题
这两个函数各有特点,
1、iconv速度快,自然优先选择,但是他有个缺点,如果遇到自己不能转换的字符,就从那里截断。这就导致转码中内容被无故截断。
2、mb_convert_encoding函数效率比较低,但是他遇到无法转换的内容不会截断,这很大程度保留了内容的完整性。但是我发现比如内容有空格,转换出来的内容就有?符号,还是不够完美。
如何结合这两个函数对字符进行转码?
我的思路是这样的:
优先肯定使用iconv函数,因为效率高,而且是内置函数。discuz的转码函数也是优先使用此函数,但是他转码不完整的情况下,就要安排mb_convert_encoding去收拾残局了,问题来了,如何判断他转码不完整?
回复讨论(解决方案)
虽然 mb_convert_encoding函数 需要加载 php_mbstring 扩展
但加载了就不能说不是内置函数了
对于不可识别的字符,iconv 提供了两个开关供你选用,并不是一味的截断
//TRANSLIT 用相近的字符替代
//IGNORE 丢弃并继续
虽然 mb_convert_encoding函数 需要加载 php_mbstring 扩展
但加载了就不能说不是内置函数了
对于不可识别的字符,iconv 提供了两个开关供你选用,并不是一味的截断
//TRANSLIT 用相近的字符替代
//IGNORE 丢弃并继续
好像我也加了IGNORE 函数,但是有些内容转码还是不够理想。
换句话说,有时候用iconv 行,mb_convert_encoding不行,mb_convert_encoding行,iconv 又不行
虽然 mb_convert_encoding函数 需要加载 php_mbstring 扩展
但加载了就不能说不是内置函数了
对于不可识别的字符,iconv 提供了两个开关供你选用,并不是一味的截断
//TRANSLIT 用相近的字符替代
//IGNORE 丢弃并继续
试验了一下,IGNORE也许是可以绕过去的(之前遇到不能饶的),但是转换某些字符时,把字符丢失了。
比如把“?”符号的转换成gb2312时,iconv没转换过来,但是mb_convert_encoding转换过来了。所以二者各有优缺点,现在只是想怎样才能比较完美的结合起来使用。

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



Alipay PHP ...

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.
