Gibt es eine Möglichkeit, alle Sonderzeichen in erhabenem Text oder einem anderen Texteditor hervorzuheben?

74

Ich verwende die HTML-Codierung von Sonderzeichen in Sublime-Text, um alle Sonderzeichen in ihren HTML-Code umzuwandeln. Ich habe viele akzentuierte Zeichen in verschiedenen Teilen der Datei. Es wäre also großartig, wenn ich alle Sonderzeichen auswählen und dann das Plugin verwenden könnte, um alle auf einmal zu konvertieren!

Gibt es einen regulären Ausdruck, mit dem nur alle Sonderzeichen ausgewählt werden können?

kashive
quelle

Antworten:

183

Ja.

Erhabener Text unterstützt reguläre Ausdrücke und Sie können alle Nicht-ASCII-Zeichen (Codepunkt> 128) auswählen. Dieser Regex-Fund sollte für Sie ausreichen:

[^\x00-\x7F]

Einfach suchen und ersetzen.

Wenn Sie jedoch zuerst eine manuelle HTML-Codierung durchführen, machen Sie es falsch. Speichern Sie Ihre Dateien als UTF-8-Codierung (Standard Sublime Text 2) und stellen Sie sicher, dass Ihr Webserver diese Dateien auch als UTF-8 sendet. Keine Konvertierung, Codierung oder irgendetwas benötigt.

Mikko Ohtamaa
quelle
1
Beim Codieren einer HTML-E-Mail ist die Verwendung von UTF-8 normalerweise keine Option, da dies nicht in allen E-Mail-Clients unterstützt wird. In diesen Fällen ist eine manuelle HTML-Codierung erforderlich.
Mtnorthrop
@mtnorthrop: Kannst du bitte sagen, wann UTF-8 Probleme verursacht? Ich versende nämlich Unmengen von HTML-E-Mails und möchte wissen, auf welche Probleme ich stoßen kann.
Mikko Ohtamaa
Ich kann Ihnen nicht genug dafür danken ... habe stundenlang versucht, eine Nicht-Utf-8-Datendatei zu betrachten, um dies herauszufinden
Matt Kim
14

Nur als weitere Referenz (oder als Ergänzung):

Das Sublime Text 2/3-Paket mit dem Namen Highlighterkann (wie sein Name schon sagt) einige Zeichen mit Regex ...

"Sie können auch einen benutzerdefinierten regulären Ausdruck hinzufügen, damit Zeichen hervorgehoben werden können."

Mit diesem Paket und der @Mikko OhtamaaAntwort können wir die Datei bearbeiten ...

highlighter.sublime-settings - User

... und fügen Sie den vorgeschlagenen regulären Ausdruck hinzu (hier ausgedrückt als [^\\x00-\\x7F]), um am Ende Folgendes zu erhalten:

{  
    "highlighter_regex": "(\t+ +)|( +\t+)|[^\\x00-\\x7F]|[\u2026\u2018\u2019\u201c\u201d\u2013\u2014]|[\t ]+$"  
}

Das Ergebnis wäre eine automatische Hervorhebung aller "Nicht-ASCII-Zeichen (Codepunkt> 128)" in unserer Datei.

Beachten Sie, dass diese Zeichen nicht ausgewählt werden, sondern nur hervorgehoben werden, um leicht zu erkennen, ob Sie welche haben.

gmo
quelle
7

Eine weitere Plugin-Option

Ich habe kürzlich ein Plugin geschrieben, das sich dem Hervorheben von Nicht-ASCII-Zeichen widmet: https://github.com/TuureKaunisto/highlight-dodgy-chars

Die gleiche Funktionalität kann mit Highlighter erreicht werden, aber mit dem weniger generischen Highlight Dodgy Chars-Plugin müssen Sie keinen regulären Ausdruck schreiben, sondern können nur die Nicht-ASCII-Zeichen auflisten, die Sie in den Einstellungen nicht hervorheben möchten. Die europäischen Sonderzeichen werden standardmäßig in die Whitelist aufgenommen.

Tuure
quelle