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.
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!