开发者

What are the best characters to use for placeholders in file names (on Windows) AND URLs?

开发者 https://www.devze.com 2023-01-16 08:26 出处:网络
I am writing an application in C# that will need to find placeholders in URLs and/or filenames, and substitute in a value, much like this: C:\\files\\file{number} => C:\\files\\file1 Unfortunately for

I am writing an application in C# that will need to find placeholders in URLs and/or filenames, and substitute in a value, much like this: C:\files\file{number} => C:\files\file1 Unfortunately for that example, curly braces are allowed in file names and URLs.

Can anyone please suggest some characters that I can use t开发者_开发知识库o denote placeholders in files and URLs? Thank you!


Windows rather helpfully tells you what characters aren't allowed in a filename, when you try to use on of them:

A filename cannot contain any of the following characters:
\ / : * ? " < > |

See this support article for more information, including the list of allowed characters.

Characters that are valid for naming files, folders, or shortcuts include any combination of letters (A-Z) and numbers (0-9), plus the following special characters:

^   Accent circumflex (caret)
&   Ampersand
'   Apostrophe (single quotation mark)
@   At sign
{   Brace left
}   Brace right
[   Bracket opening
]   Bracket closing
,   Comma
$   Dollar sign
=   Equal sign
!   Exclamation point
-   Hyphen
#   Number sign
(   Parenthesis opening
)   Parenthesis closing
%   Percent
.   Period
+   Plus
~   Tilde
_   Underscore

As for URLs, see section 2.2 of RFC 1738 for a description of allowed characters:

Thus, only alphanumerics, the special characters "$-_.+!*'(),", and reserved characters used for their reserved purposes may be used unencoded within a URL.

...also of interest, from the same section:

Characters can be unsafe for a number of reasons. The space character is unsafe because significant spaces may disappear and insignificant spaces may be introduced when URLs are transcribed or typeset or subjected to the treatment of word-processing programs. The characters "<" and ">" are unsafe because they are used as the delimiters around URLs in free text; the quote mark (""") is used to delimit URLs in some systems. The character "#" is unsafe and should always be encoded because it is used in World Wide Web and in other systems to delimit a URL from a fragment/anchor identifier that might follow it. The character "%" is unsafe because it is used for encodings of other characters. Other characters are unsafe because gateways and other transport agents are known to sometimes modify such characters. These characters are "{", "}", "|", "\", "^", "~", "[", "]", and "`".

All unsafe characters must always be encoded within a URL.

It looks like the double-quote and angle bracket characters ("<>) are good options.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号