Characters in keys
Any valid Unicode character can appear in an OSM key but usually only lower case latin letters (a-z) and the underscore (_) are used. The colon (:) is often used as a separator character. This report categorizes all keys according to the characters they use.
|Count||Fraction||Characters in key|
|A||14340||22.55%||Only latin lowercase letters (a to z) and underscore (_), first and last characters are letters.|
|B||28475||44.77%||Like A but with one or more colons (:) inside.|
|C||15808||24.85%||Like B but with uppercase latin letters or letters from other alphabets.|
|D||1706||2.68%||At least one whitespace character (space, tab, new line, carriage return, or from other alphabets).|
|E||86||0.14%||Contains possibly problematic characters =+/&<>;'"?%#@\,.|
Keys containing only lowercase latin letters (a to z) and the underscore (_). First and last characters must be letters. Most simple keys should fall into this category.
Keys with colon
Keys that have one or more colon (:) characters inside in addition to the letters (a to z) and underscores (_). The colon is often used as a hierarchy separator character.
Keys with uppercase letters or letters from other scripts
Lowercase letters from the latin script are usually preferred for keys, but sometimes uppercase letters are used (for instance for known abbreviations) or letters from other scripts (for instance for keys only relevant to an area where that script is used predominantly).
Keys with whitespace
Keys that contain whitespace characters such as space, tab, new line, carriage return, or whitespace characters from other alphabets. Whitespace in keys can be confusing, especially at the beginning or end of the key, because they are invisible. Generally the whitespace should be removed or the underscore (_) used instead.
Keys with possibly problematic characters
Keys that contain possibly problematic characters: =+/&<>;'"?%#@\, or control characters. These characters can be problematic, because they are used to quote strings in different programming languages or have special meanings in XML, HTML, URLs, and other places. The equal sign is used often as separator between tag keys and values. Keys that appear in this list are not necessarily wrong though. But in many cases they are just results of some error and should be fixed.
All other keys
Keys that don't fit in any of the other categories.