使用C#进行URL编码

我有一个应用程序,该应用程序将POST请求发送到VB论坛软件并登录某人(不设置cookie或任何东西)。

用户登录后,我将创建一个变量,该变量将在其本地计算机上创建路径。

c:\ tempfolder \ date \用户名

问题在于某些用户名抛出“非法字符”异常。例如,如果我的用户名是mas|fenix,它将引发异常。

Path.Combine( _      

Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData), _

DateTime.Now.ToString("ddMMyyhhmm") + "-" + form1.username)

我不想从字符串中删除它,但是通过服务器上的FTP创建了一个带有用户名的文件夹。这引出了我的第二个问题。如果我在服务器上创建文件夹,可以保留“非法字符”吗?我之所以只问这是因为服务器是基于Linux的,所以我不确定Linux是否接受它。

old username = mas|fenix

new username = mas%xxfenix

其中%xx是ASCII值或任何其他容易识别字符的值。

回答:

UrlEncoding将按照您在此处的建议进行操作。HttpUtility如前所述,使用C#,您只需使用。

您还可以将正则表达式换成非法字符,然后进行替换,但这变得更加复杂,因为您将必须具有某种形式的状态机(例如switch …

case)以替换正确的字符。由于UrlEncode这是预先完成的,因此非常容易。

至于Linux和Windows,有一些Linux可以接受的字符,但Windows却没有,但是我不用担心,因为可以使用解码Url字符串来返回文件夹名称UrlDecode,因此您可以往返变化。

以上是 使用C#进行URL编码 的全部内容, 来源链接: utcz.com/qa/435658.html

回到顶部