Wir verarbeiten eine Reihe englischsprachiger Dokumente (hauptsächlich wissenschaftliche) und stoßen dabei auf Probleme bei der Übertragung von Nicht-ANSI-Zeichen durch die verschiedenen Komponenten. Die Dokumente können "ASCII", UNICODE, PDF oder HTML sein. Wir können zum jetzigen Zeitpunkt nicht vorhersagen, welche Werkzeuge in unserer Kette sein werden oder ob sie andere Zeichenkodierungen als ANSI zulassen werden. Selbst in UNICODE ausgedrückte lateinische ISO-Zeichen werden Probleme bereiten (z. B. werden sie in Browsern falsch angezeigt). Wir werden wahrscheinlich auf eine Reihe von Symbolen stoßen, darunter auch mathematische und griechische. Wir möchten diese in eine Textzeichenfolge "umwandeln", die eine mehrstufige Verarbeitung (einschließlich XML und Regex-Tools) übersteht, und sie dann möglicherweise im letzten Schritt wieder zusammensetzen (obwohl wir uns eher mit der Semantik als mit der Typografie befassen, so dass dies ein geringeres Problem darstellt).
Ich schätze, dass es keine absolute Antwort gibt - jedes Escaping kann in einigen Fällen kollidieren - aber ich bin auf der Suche nach etwas in der Nähe der Linien von XML <![CDATA[ ...]]>
die die meisten nicht-rekursiven XML-Operationen übersteht. Zeichen wie [
sind schlecht, da sie in Regexen üblich sind. Ich frage mich also, ob es einen allgemein akzeptierten Ansatz gibt, anstatt unseren eigenen zu erfinden.
Ein typisches Beispiel ist das Symbol "Grad":
HTML Entity (decimal) °
HTML Entity (hex) °
HTML Entity (named) °
How to type in Microsoft Windows Alt +00B0
Alt 0176
Alt 248
UTF-8 (hex) 0xC2 0xB0 (c2b0)
UTF-8 (binary) 11000010:10110000
UTF-16 (hex) 0x00B0 (00b0)
UTF-16 (decimal) 176
UTF-32 (hex) 0x000000B0 (00b0)
UTF-32 (decimal) 176
C/C++/Java source code "\u00B0"
Python source code u"\u00B0"
Wahrscheinlich werden wir auch auf TeX
$10\,^{\circ}{\rm C}$
ou
\degree
daher sind Backslashes, Curlies und Dollars eine schlechte Idee.
Wir könnten zum Beispiel Markierungen wie diese verwenden:
__deg__
__#176__
und das wird wahrscheinlich funktionieren, aber ich wäre dankbar für Ratschläge von denen, die ähnliche Probleme haben.
Update Ich akzeptiere die Forderung von @MichaelB, dass wir durchgehend UTF-8 verwenden. Ich mache mir Sorgen, dass einige unserer Tools nicht konform sind, und wenn das der Fall ist, werde ich das noch einmal überdenken. Beachten Sie, dass meine ursprüngliche Frage nicht gut formuliert ist - lesen Sie seine Antwort und den darin enthaltenen Link.