Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem mit verstümmelten PHP-Sockets

So lösen Sie das Problem mit verstümmelten PHP-Sockets

藏色散人
藏色散人Original
2020-07-13 10:42:253615Durchsuche

Lösung für verstümmelten PHP-Socket-Code: Überprüfen Sie zunächst die Kodierung der Fehlermeldung mit der Methode „mb_detect_encoding(socket_last_error($socket))“ und konvertieren Sie dann die Fehlermeldung in „UTF-8“-Kodierung.

So lösen Sie das Problem mit verstümmelten PHP-Sockets

PHP-Schreib-Socket-Fehlermeldung verstümmeltes Problem

Problem

Seit der Standardeinstellung des PHP-Projekts Es wird die UTF-8-Kodierung verwendet. Da es sich bei der Fehlermeldung bei Verwendung der Socket-Programmierung nicht um die verwendete UTF-8-Kodierung handelt, werden die Ausgabefehler im Browser und in der Konsole in verstümmelten Zeichen angezeigt.

Die Fehlermeldung lautet wie folgt:

socket_connect(): unable to connect [10061]: ����Ŀ����������ܾ����޷����ӡ�

Verarbeitungsprozess

1. Überprüfen Sie zunächst die Kodierung der Fehlermeldung durch den folgenden Code

mb_detect_encoding(socket_last_error($socket))

Das Ergebnis wird als ASCII ausgegeben.

2. Aus dem Prüfergebnis des ersten Schritts geht hervor, dass die Codierung der Fehlermeldung nicht UTF-8 ist, sodass die Fehlermeldung in die UTF-8-Codierung konvertiert werden muss. Dies kann durch die folgende Funktion erreicht werden:

 function doEncoding($str){
        $encode = strtoupper(mb_detect_encoding($str, ["ASCII",'UTF-8',"GB2312","GBK",'BIG5']));
        if($encode!='UTF-8'){
            $str = mb_convert_encoding($str, 'UTF-8', $encode);
        }
        return $str;
    }

Das Ausgabeergebnis ist nach der Konvertierung durch diesen Code normal

socket_connect() fehlgeschlagen Grund: Die Verbindung kann nicht hergestellt werden, da der Zielcomputer dies aktiv ablehnt .

Weitere Informationen zu diesem Thema finden Sie auf der PHP-Website für Chinesisch!

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem mit verstümmelten PHP-Sockets. 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