Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn der Dateiname einer von PHP hochgeladenen chinesischen Datei verstümmelt ist?

Was soll ich tun, wenn der Dateiname einer von PHP hochgeladenen chinesischen Datei verstümmelt ist?

coldplay.xixi
coldplay.xixiOriginal
2020-07-18 14:33:573470Durchsuche

Lösung für den verstümmelten Dateinamen chinesischer Dateien, die von PHP hochgeladen wurden: Fügen Sie relevante Anweisungen in der Mitte des Head-Tags der HTML-Datei hinzu, um die Codierung einheitlich zu halten. Der Code lautet [

Lösung für verstümmelte Dateinamen chinesischer Dateien, die von hochgeladen wurden php:

Methode 1: Lassen Sie mich raten, vielleicht verursacht mein System beim Erstellen chinesischer Dateien verstümmelte Zeichen, also habe ich den Code neu geschrieben:

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/测试数据.txt");

The Das Ergebnis wurde erfolgreich ohne verstümmelte Zeichen erstellt.

Denken Sie darüber nach, meine PHP-Datei selbst ist in utf8 codiert muss in utf8 codiert sein, dann ist die zuvor hochgeladene Datei Der Name ist definitiv nicht utf8-codiert, daher ist die folgende Aussage definitiv falsch, da die Quellzeichenfolge selbst nicht utf8-codiert ist:

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/测试数据.txt");

Verwenden Sie die Funktion, um das zu überprüfen Kodierung der Quellzeichenfolge:

iconv("UTF-8","gbk//TRANSLIT",$_FILES["file"]["name"]);

Das Ergebnis ist CP936, d verstümmelte Zeichen

Methode 2:

Tatsächlich gibt es eine andere Lösung, die darin besteht,

$e=mb_detect_encoding($text, array(‘UTF-8’, ‘GBK’,’gb2312’));2 echo $e;

in die Mitte des Head-Tags der HTML-Datei einzufügen, damit die Die Codierung bleibt einheitlich und es ist keine Transcodierung mehr erforderlich.

Fazit

Mit der Funktion iconv kann das Problem verstümmelter chinesischer Dateinamen gelöst werden . Tatsächlich kann iconv verschiedene verstümmelte Probleme lösen, die durch inkonsistente Codierung verursacht werden.

    Wenn Sie die Iconv-Funktion verwenden, überprüfen Sie bitte zuerst die Codierung der Quellzeichenfolge, es sei denn, Sie haben die Codierung bereits festgelegt der Quellzeichenfolge.
  • Versuchen Sie sicherzustellen, dass die Codierung aller Codes konsistent ist. Verwenden Sie die Iconv-Funktion nur als letzten Ausweg >Versuchen Sie, sich zu beschweren, versuchen Sie, keine chinesischen Dateinamen als auf dem Server gespeicherte Dateinamen zu verwenden. Bitte konvertieren Sie den Dateinamen in Ihren eigenen Dateinamen (auch wenn er englisch ist).
  • Verwandte Lernempfehlungen:

    PHP-Programmierung vom Anfänger bis zum Experten

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn der Dateiname einer von PHP hochgeladenen chinesischen Datei verstümmelt ist?. 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