Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der Lösungen für das Problem verstümmelter chinesischer PHP-Zeichen

Zusammenfassung der Lösungen für das Problem verstümmelter chinesischer PHP-Zeichen

伊谢尔伦
伊谢尔伦Original
2017-06-07 16:13:231932Durchsuche

Wenn Freunde zum ersten Mal PHP lernen, stellen sie häufig fest, dass die Inhaltsausgabe im Browser viele verstümmelte Zeichen enthält, insbesondere bei der Ausgabe von Chinesisch. Warum gibt es verstümmelte Codes? Im Allgemeinen gibt es zwei Gründe für das Erscheinen verstümmelter Zeichen. Einer liegt an der falschen Kodierungseinstellung (Zeichensatz), die dazu führt, dass der Browser mit der falschen Kodierung analysiert, was zu einem Bildschirm voller unordentlicher „himmlischer Bücher“ führt Zweitens ist die Datei mit der falschen Codierung geöffnet und dann gespeichert. Wenn beispielsweise eine Textdatei ursprünglich in GB2312 codiert ist, aber in der UTF-8-Codierung geöffnet und dann gespeichert wird, werden verstümmelte Zeichen angezeigt. Im folgenden Artikel werden wir über das Problem und die Lösung chinesischer verstümmelter Zeichen in PHP sprechen.

Problem mit chinesischem verstümmeltem Code

1. So lösen Sie den chinesischen verstümmelten Code Problem in PHP?

Die erste Methode: Lösen Sie das Problem chinesischer verstümmelter Zeichen in HTML

Wenn Ihre HTML-Datei verstümmelte Zeichen enthält, können Sie der Head-Tag-Codierung UTF8-Codierung (Internationalisierung) hinzufügen ): UTF-8 ist eine länderlose Kodierung, das heißt, sie ist sprachunabhängig und kann in jeder Sprache verwendet werden.

Zweitens gemischte HTML- und PHP-Seitenlösung

Drittens das chinesische verstümmelte Problem reiner PHP-Seiten (die Daten sind statisch)

Viertens das chinesische verstümmelte Problem von PHP + MySQL

Zusätzlich zum dritten Vorgang müssen Sie auch die Datenbankkodierung hinzufügen, bevor Sie Ihre Daten abfragen/ändern/hinzufügen. Darüber hinaus ist anzumerken, dass sich UTF8 hier vom vorherigen unterscheidet und keine horizontale Linie in der Mitte vorhanden ist.

2.

Lösung für das Problem der Verwendung von strrev zum Umdrehen chinesischer verstümmelter Zeichen

header("Content-Type: text/html; charset=utf-8");
$str = '处理使用strrev()函数时的乱码问题';
function cnstrrev($str)
{
  $len = strlen($str);
  for($i = 0; $i < $len; $i++)
  {
    $char = $str{0};
    if(ord($char) > 127) //ord()函数取得第一个字符的ASCII码,如果大于0xa0(127)的话则是中文字符
    {
      $i+=2;//utf-8编码的情况下,一个中文字符占三个字节
      if($i < $len)
      {
        $arr[] = substr($str, 0, 3);//utf-8编码的情况下,一个中文字符占三个字节
        $str = substr($str, 3);
      }
    }
    else
    {
      $arr[] = $char;
      $str = substr($str, 1);//否则为非中文,占一个字符
    }
  }
  return join(array_reverse($arr));//以相反的元素顺序返回数组:
}
echo $str.&#39;+&#39;.cnstrrev($str);
3.

Lösung für json_encode UTF-8 verstümmeltes Chinesisch Zeichen in PHP

Dies ist eine einfache Codekonvertierung und gibt dann das erforderliche Array nach dem URL-Code zurück

public static function encodeOperations ($array)  
{  
    foreach ((array)$array as $key => $value) {  
        if (is_array($value)) {  
        encodeOperations($array[$key]);  
        } else {  
        $array[$key] = urlencode(mb_convert_encoding($value,&#39;UTF-8&#39;,&#39;GBK&#39;));  
        }  
    }
  return $array;  
}
4.Eine Sammlung von Lösungen für die Übertragung verstümmelter chinesischer Zeichen in der PHP-URL-Adressleiste

URL-Kodierung

Syntax: string urlencode(string str);

Rückgabewert: string
Funktionstyp: Kodierungsverarbeitung

URL-Dekodierung

URL-kodierte Zeichenfolge wiederherstellen.

Syntax: string urldecode(string str);
Rückgabewert: String
Funktionstyp: Codierungsverarbeitung

5.

Json_encode in PHP behandelt gbk- und gb2312-chinesische verstümmelte Probleme Lösung

Es ist ersichtlich, dass selbst bei Verwendung der mit UTF8 codierten Zeichen bei Verwendung von json_encode verstümmelte chinesische Zeichen angezeigt werden. Die Lösung besteht darin, die Zeichen mit der Funktion urlencode() zu verarbeiten, bevor Sie json_encode und dann json_encode verwenden, und sie dann bei der Ausgabe des Ergebnisses mit der Funktion urldecode() zurückzukonvertieren.

6.

Lösung für das verstümmelte Ajax-Chinesisch-Problem in PHP

Weil XMLHttp den Antwortkörper gemäß UTF-8-Kodierung dekodiert, wenn der zurückgegebene Antworttext auf der Serverseite verarbeitet wird Wenn der gesendete Datenstrom tatsächlich UTF-8-codiert ist, werden chinesische Zeichen korrekt angezeigt. Wenn es sich jedoch um GBK oder eine andere Codierung handelt, tritt die oben beschriebene Situation auf.

Verwandte Fragen und Antworten1.

Es ist ein magisches Problem aufgetreten, das durch verstümmelte chinesische Schriftzeichen verursacht wurde

2 .

PHP-chinesischer verstümmelter Code

3.

Chinesische verstümmelte Webseite kann nicht gelöst werden, siehe Bild[Verwandte Empfehlungen ]

1. Kostenlose Video-Tutorials auf der chinesischen PHP-Website:

„php.cn Dugu Jiujian (4)-php-Video-Tutorial“

2 Website:

《php-Einführungs-Tutorial: PHP in einer Woche lernen》

Das obige ist der detaillierte Inhalt vonZusammenfassung der Lösungen für das Problem verstümmelter chinesischer PHP-Zeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn