Ersetzen Der Unicode-Steuerzeichen
Brauche ich, um zu ersetzen Sie alle Sonder-control Zeichen in einem string in Java.
Möchte ich Euch bitten, die Google maps API v3, Google scheint nicht, wie diese Zeichen.
Beispiel: http://www.google.com/maps/api/geocode/json?sensor=false&Adresse=NEW%20YORK%C2%8F
Diese URL enthält dieses Zeichen: http://www.fileformat.info/info/unicode/char/008f/index.htm
Also ich bekomme einige Daten, und ich brauche, um die geocode-Daten. Ich weiß, dass einige Zeichen würde nicht passieren die Geokodierung, aber ich weiß nicht die genaue Liste.
Ich war nicht in der Lage zu finden, keine Dokumentation über dieses Thema, so denke ich, dass die Liste von Zeichen, die Google nicht mag, ist dieses:
http://www.fileformat.info/info/unicode/category/Cc/list.htm
Gibt es eine bereits eingebaute Funktion, um loszuwerden, diese Zeichen, oder muss ich ein neues zu bauen, mit einer ersetzen, eins nach dem anderen?
Oder gibt es eine gute regexp zu tun den job zu erledigen?
Und weiß jemand die genaue Liste der Zeichen, die Google nicht mag?
Edit : bei Google erstellen Sie eine Webseite für diese :
https://developers.google.com/maps/documentation/webservices/?hl=fr#BuildingURLs
Kann ich ersetzen Sie manuell alle Zeichen, die nicht gültig sind. Das problem ist, dass ich don ' T wissen alle in der Liste (und ich will nicht, um zu testen, eins nach dem anderen), und ich will nicht zu tun, ein replaceAll für jedes ungültige Zeichen weder
InformationsquelleAutor Cyril Gandon | 2010-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, löschen Sie alle Zeichen in Anderen/Control Unicode-Kategorie, die Sie tun können, so etwas wie dieses:
Beachten Sie, dass diese entfernt tatsächlich (unter anderem)
'\u008f'
Unicode-Zeichen aus der Zeichenkette, nicht die Escape-form"%8F"
string.Wenn die blacklist ist nicht gut eingefangen, die von einem Unicode-block/Kategorie Java hat einen kraftvollen Charakter-Klasse-Arithmetik mit Schnittmenge, Subtraktion, etc., die Sie verwenden können. Alternativ können Sie auch mit einem negierten whitelist-Ansatz, d.h. statt der explizit festlegen, welche Zeichen unzulässig sind, bestimmen Sie, welche legal sind, und alles andere dann illegal wird.
API-links
java.util.regex.Pattern
Beispiele
Hier eine Subtraktion Beispiel:
Den
[…]
ist ein Klasse. So etwas wie[aeiou]
entspricht, von der Kleinschreibung Vokale.[^…]
ist ein negiert Charakter-Klasse.[^aeiou]
mit einer der nichts, aber das kleingeschriebene Vokale.[a-z&&[^aeiou]]
entspricht[a-z]
subtrahiert, indem[aeiou]
, d.h. alle Kleinbuchstaben Konsonanten.Das nächste Beispiel zeigt das negiert whitelist-Ansatz:
Nur Kleinbuchstaben
a-z
sind legal, alles andere illegal ist.die oben genannten sind nur Beispiele. Finden, was Unicode-Kategorie/block, Sie möchten schwarz/weiß-Liste und schreiben die regex, wie Sie möchten, unter Verwendung von Elementen, die hier gezeigt werden.
Oh,
\p{Cc}
man mehr undokumentierte Muster Ausdruck. Nice one. Gut zu wissen.Ich bin kein Unicode-Experte, aber ich denke, es wird dokumentiert: "Kategorien angegeben werden können, mit dem optionalen Präfix
Is
: Beide\p{L}
und\p{IsL}
bezeichnen die Kategorie der Unicode-Buchstaben. ". ErsetzenL
mitCc
oder einer anderen Kategorie-name.Mit Oracle Java 1.6.0_29 unter Linux "\\p{Cc}" funktionierte nicht für mich, sondern "\\p{C}" (ohne die Kleinbuchstaben "c"). Ich habe keine Ahnung, warum
InformationsquelleAutor polygenelubricants