Frage

In meinem Programm bin ich über Nstask. Aus irgendeinem Grund erhielt ich manchmal keine Ergebnisse (obwohl der Code anscheinend der gleiche wie der von der CLI ausgeführte Befehl war, der gut funktioniert hat) Ein gstaskisches Objekt, "das nichtstaskische Objekt wandelt sowohl den Pfad als auch die Zeichenfolgen in Argumenten in geeignete Zeichenfolgen im C-Stil (unter Verwendung von Dateisystemrepräsentation) um, bevor sie über Argv [] an die Aufgabe weitergegeben werden" ((Schnipsel).

Das Problem ist, dass ich Begriffe wie "Río Gallegos" grep. Leider (wie ich mit Dateisystemrepräsentation überprüft habe) erfährt sich die Konvertierung und stellt sich als "Riãåo Gallegos" heraus.

Wie kann ich das lösen?

- ry

War es hilfreich?

Lösung

Das Problem ist, dass ich Begriffe wie "Río Gallegos" grep. Leider (wie ich mit Dateisystemrepräsentation überprüft habe) erfährt sich die Konvertierung und stellt sich als "Riãåo Gallegos" heraus.

Das ist eine mögliche Interpretation. Was Sie meinst, ist, dass „Río Gallegos“ in „RI“ konvertiert wird\xcc\x81o Gallegos “-die UTF-8-Bytes, um den zerlegten i + zu repräsentieren, der akuten Akzent kombiniert.

Ihr Problem ist, dass Grep diese Bytes nicht als UTF-8 interpretiert. Grep verwendet eine andere Codierung - anscheinend Makroman.

Die Lösung besteht darin, Grep zu sagen, dass sie UTF-8 verwenden soll. Das erfordert das Festlegen der LC_ALL Variable in Ihren Grep -Aufgaben Umgebung.

Der schnelle und schmutzige Wert wäre "en_us.utf-8"; Ein richtigerer Weg wäre, den Sprachcode für die Primär des Benutzers zu erhalten Bevorzugte Sprache, Ersetzen Sie den Bindestrich, falls vorhanden, durch einen Unterstrich und kleben Sie am Ende „.utf-8“.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top