diff --git a/_includes/types/uri.md b/_includes/types/uri.md index 1ffd89829..eba3d53e8 100644 --- a/_includes/types/uri.md +++ b/_includes/types/uri.md @@ -16,6 +16,13 @@ We also maintain a node module to parse a string into `scheme`, `authority`, `pa Many of the interfaces contain fields that correspond to the URI of a document. For clarity, the type of such a field is declared as a `DocumentUri`. Over the wire, it will still be transferred as a string, but this guarantees that the contents of that string can be parsed as a valid URI. +Care should be taken to handle encoding in URIs. For example, some clients (such as VS Code) may encode colons in drive letters while others do not. The URIs below are both valid, but clients and servers should be consistent with the form they use themselves to ensure the other party doesn't interpret them as distinct URIs. Clients and servers should not assume that each other are encoding the same way (for example a client encoding colons in drive letters cannot assume server responses will have encoded colons). The same applies to casing of drive letters - one party should not assume the other party will return paths with drive letters cased the same as it. + +``` +file:///c:/project/readme.md +file:///C%3A/project/readme.md +``` +
```typescript