Konvertieren von Nicht-UTF-8 Zeichen in UTF-8

Ich habe einige Dateien, die auf meinem Linux-System vorhanden sind. Diese Dateinamen können auch andere die un_eng-utf8 sein. Ich möchte sie von non-utf8 Zeichen in das utf-8 Zeichen umwandeln. Wie kann ich das mit C-Bibliothek oder Python-Skripten machen?

2 Solutions collect form web for “Konvertieren von Nicht-UTF-8 Zeichen in UTF-8”

Wenn Sie die Zeichenkodierung kennen, die zum Verschlüsseln der Dateinamen verwendet wird:

unicode_filename = bytestring_filename.decode(character_encoding) utf8filename = unicode_filename.encode('utf-8') 

Wenn Sie die Zeichencodierung nicht kennen, dann gibt es im allgemeinen Fall keine Möglichkeit, die Umwandlung ohne Datenverlust zu machen – "non-utf8" ist nicht spezifisch genug, zB wenn Sie einen Dateinamen haben, der b'\xae' enthält b'\xae' Byte dann kann es je nach Dateinamenkodierung anders interpretiert werden – es ist u'®' in cp1252 , aber das gleiche Byte repräsentiert u'«' in cp437 . Es gibt Module wie chardet , die es Ihnen erlauben, die Charakter-Codierung zu erraten, aber es ist nur eine Vermutung – "Es gibt keine solche Sache wie einfacher Text."

 def converttoutf8(a): return unicode(a, "utf-8") 

Jetzt für jeden Dateinamen, den du durchführst, wird der utf-8 formatierte Dateiname zurückgegeben

Oder noch besser, benutzen convmv . Es konvertiert Dateinamen von einer Codierung in eine andere und nimmt ein Verzeichnis als Argument. klingt perfekt.

  • Globale Keybinding auf X mit Python gtk3
  • Code von vim zu stata senden
  • Signalbehandlung im Multithread-Python
  • Führen Sie ein Python-Skript jedes Mal, wenn der Computer aus dem Winterschlaf aufwacht
  • Google Cloud-Rede api werfen 403 beim Versuch, es zu benutzen
  • Fehler beim Ausführen von Aufruf () im Python-Unterprozess
  • Dämonen von Sellerie
  • Verschieben und Zoomen einer TKinter Leinwand mit der Maus
  • Force python eine ältere Version des Moduls verwenden (als was ich jetzt installiert habe)
  • Wie man Python-Datei in Linux ausführt
  • Wie füge ich einen Python-Importpfad dauerhaft hinzu?
  • Python ist die beste Programmiersprache der Welt.