Als ich heute meine Arbeit online überarbeitete, stieß ich auf die iconv-Funktion. Erfahren Sie mehr über
header('Content-Type: application/vnd.ms-excel;charset=UTF-8"');
$name=iconv('utf-8', 'gb2312', $data[ 'year'].'Jahr, Nr.'.$data['period'].'Correspondence');
header('Content-Disposition: attachment;filename="' . $name . '.xls" ' );
header('Cache-Control: max-age=0');
Die Bedeutung dieses Codes besteht darin, das UTF-8-Format in das GB2312-Format zu konvertieren, es dann $name zuzuweisen und zu exportieren so Der Name der Excel-Datei ist der Name des chinesischen $-Namens
Das Folgende ist die detaillierte und erweiterte Verwendung dieser Funktion
Die ursprüngliche Website-Adresse (www.cnblogs.com/keheng/articles/2496017 .html);
iconv("UTF-8","GB2312//IGNORE",$data)
ignore bedeutet, dass Fehler während der Konvertierung ignoriert werden.
Diese iconv()-Funktion ist in PHP5 integriert.
Beispiel:
echo $str= 'Hallo, wir verkaufen hier Kaffee!'; echo '
';
echo iconv('GB2312', 'UTF-8', $str); //Konvertieren Sie die Zeichenfolgenkodierung von GB2312 in UTF-8
echo '
';
echo iconv_substr($str, 1, 1, 'UTF-8'); //Nach Anzahl der Zeichen statt Bytes kürzen
print_r(iconv_get_encoding ()); /Holen Sie sich die Kodierungsinformationen der aktuellen Seite
echo iconv_strlen($str, 'UTF-8'); //Holen Sie sich die Stringlänge der eingestellten Kodierung
//Es kann auch hier verwendet werden way
$content = iconv("UTF-8","gbk//TRANSLIT",$content);
?>
iconv ist nicht die Standardfunktion von PHP, sondern auch ein standardmäßig installiertes Modul. Es muss installiert werden, bevor es verwendet werden kann.
Wenn es sich um Windows 2000 PHP handelt, können Sie die Datei php.ini ändern und das „;“ vor der Erweiterung=php_iconv.dll entfernen. Gleichzeitig müssen Sie die Datei iconv.dll in Ihre ursprüngliche PHP-Installationsdatei kopieren zu Ihrem winnt/system32 (Wenn Ihre DLL auf dieses Verzeichnis verweist)
Verwenden Sie in der Linux-Umgebung die statische Installation und fügen Sie ein zusätzliches Element hinzu --with-iconv, wenn Sie phpinfo konfigurieren, kann das Element iconv angezeigt werden. (Linux7.3 Apache4.06 php4.3.2),
Download: ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz
Installation:
#cp libiconv-1.8.tar.gz /usr/local/src
#tar zxvf lib*
#./configure --prefix=/usr/local/libiconv
#make
#make install
PHP kompilieren
#./configure --prefix=/usr/local/php4.3.2 --with-ic/local/libiconv/
Einfaches Anwendungsbeispiel:
echo iconv("gb2312","ISO-8859-1","we");
?>
Einführung in die Funktionen mb_convert_encoding und iconv in PHP
Die Funktion mb_convert_encoding wird verwendet Kodierung konvertieren. Früher habe ich das Konzept der Programmcodierung nicht verstanden, aber jetzt scheine ich es ein wenig zu verstehen.
Bei Englisch gibt es jedoch im Allgemeinen keine Kodierungsprobleme, nur bei chinesischen Daten tritt dieses Problem auf. Wenn Sie beispielsweise Zend Studio oder Editplus zum Schreiben eines Programms verwenden, verwenden Sie die GBK-Codierung. Wenn die Daten in die Datenbank eingegeben werden müssen und die Datenbankcodierung utf8 ist, müssen die Daten codiert und konvertiert werden, andernfalls wird dies der Fall sein werden beim Betreten der Datenbank verstümmelt.
Sehen Sie sich die offizielle Verwendung von mb_convert_encoding an:
http://cn.php.net/manual/zh/function.mb-convert-encoding.php
Erstellen Sie ein GBK in UTF-8
< ; ?php
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("Du bist mein Freund", "UTF-8", "GBK"); 🎜>?>
Another GB2312 To Big5
< ?php
header("content-Type: text/html; charset=big5"); are my friend", "big5", "GB2312");
?>
Um die oben genannte Funktion nutzen zu können, müssen Sie sie jedoch installieren, aber zuerst die mbstring-Erweiterungsbibliothek aktivieren.
Eine andere Funktion iconv in PHP wird ebenfalls zum Konvertieren der String-Kodierung verwendet und ihre Funktion ähnelt der obigen Funktion.
Im Folgenden finden Sie einige detaillierte Beispiele:
iconv – Zeichenfolge in angeforderte Zeichenkodierung konvertieren
(PHP 4 >= 4.0.5, PHP 5)
mb_convert_encoding – Zeichenkodierung konvertieren
( PHP 4 >= 4.0.6, PHP 5)
Verwendung:
string mb_convert_encoding ( string str, string to_encoding [, gemischt from_encoding] )
Sie müssen zuerst die mbstring-Erweiterungsbibliothek aktivieren und ändern php.ini ; extension=php_mbstring.dll vor; Entfernen Sie
mb_convert_encoding, um mehrere Eingabekodierungen anzugeben, die automatisch anhand des Inhalts identifiziert werden, aber die Ausführungseffizienz ist viel schlechter als bei iconv; string in_charset, string out_charset, string str )
Hinweis: Zusätzlich zur Angabe der Kodierung, in die konvertiert werden soll, kann der zweite Parameter auch zwei Suffixe hinzufügen: //TRANSLIT und //IGNORE, wobei //TRANSLIT Zeichen automatisch konvertiert die nicht direkt in ein oder mehrere ungefähre Zeichen umgewandelt werden können, //IGNORE ignoriert Zeichen, die nicht konvertiert werden können, und der Standardeffekt besteht darin, ab dem ersten unzulässigen Zeichen abzuschneiden.
Gibt die konvertierte Zeichenfolge oder FALSE zurück, wenn ein Fehler auftritt.
Verwendung:
Es wurde festgestellt, dass iconv beim Konvertieren des Zeichens „-“ in gb2312 einen Fehler macht. Ohne den Ignorierparameter können nicht alle Zeichenfolgen nach diesem Zeichen konvertiert werden gerettet werden. Egal was passiert, dieses „-“ kann nicht erfolgreich konvertiert und nicht ausgegeben werden. Darüber hinaus weist mb_convert_encoding diesen Fehler nicht auf.
Im Allgemeinen wird die Funktion „mb_convert_encoding“ nur verwendet, wenn die ursprüngliche Codierung nicht ermittelt werden kann oder die Iconv-Konvertierung nicht normal angezeigt werden kann.
1 from_encoding ist angegeben nach Zeichencodename vor der Konvertierung. Es kann sich um eine durch Kommas getrennte Liste handeln. Wenn nicht angegeben, wird die interne Kodierung verwendet. gewinnen, dann str in UCS-2LE konvertieren */
3 $str = mb_convert_encoding($str, „UCS-2LE“, „JIS, eucjp-win, sjis-win“);
4 /* „auto ” wird erweitert zu „ASCII,JIS,UTF-8,EUC-JP,SJIS“ */
5 $str = mb_convert_encoding($str, „EUC-JP“, „auto“); Beispiel:
1 $content = iconv(“GBK“, „UTF-8“, $content);
2 $content = mb_convert_encoding($content, „UTF-8“, GBK“); >
Parameter, die bei Verwendung der iconv-Funktion in PHP leicht übersehen werden
Als ich heute den gecrawlten Inhalt verarbeitete und iconv für die Codierungskonvertierung verwendete, stellte ich fest, dass das Ergebnis unterbrochen wurde. Ich vermutete, dass es sich um ein Problem mit dem Zeichensatz handelte. Ich dachte darüber nach, wie man Zeichen überspringt, die im Zielzeichen nicht vorhanden sind Ich habe das Handbuch überprüft und festgestellt, dass iconv nur drei Funktionen hat. Es scheint nicht zu funktionieren. Dann habe ich online nachgesehen und jemand hat gesagt, dass es möglich ist, aber ich bin sehr überrascht, wie man es implementiert In der Beschreibung steht, dass ich am Ende des Zielcodes eine Markierung hinzufügen kann: „TRANSLIT“. Es stellt sich heraus, dass „//“ zuerst hinzugefügt wird, was wirklich deprimierend ist. Es gibt so ein Design
Prototyp: $txtContent = iconv("utf-8",'GBK',$txtContent);
Besonderes Parameter: iconv(" UTF-8","GB2312//IGNORE",$data)
Zwei optionale Hilfsparameter: TRANSLIT und IGNORE (wobei IGNORE Überspringen bedeutet, wenn etwas auftritt, das nicht konvertiert werden kann). Beschreibung
string iconv ( string in_charset, string out_charset, string str )
Führt eine Zeichensatzkonvertierung für den String str von in_charset in out_charset durch. Gibt bei einem Fehler den konvertierten String zurück oder FALSE.
Wenn Sie den String anhängen Die Transliteration //TRANSLIT to out_charset ist aktiviert. Dies bedeutet, dass ein Zeichen, das nicht im Zielzeichensatz dargestellt werden kann, durch ein oder mehrere ähnlich aussehende Zeichen angenähert werden kann Im Zielzeichensatz dargestellte Zeichen werden stillschweigend verworfen. Andernfalls wird str vom ersten unzulässigen Zeichen abgeschnitten
Das Obige hat die PHPiconv-Funktion und einige Aspekte davon vorgestellt. Ich hoffe, dass sie für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.