#c# #asp.net #whitespace
#c# #asp.net #пробелы
Вопрос:
FileInfo[] FileList1 = Dir.GetFiles("*.doc", SearchOption.AllDirectories);
foreach (FileInfo FI in FileList1)
{
Response.Write(
"<td><a href= view5.aspx?file=" strheadlinesid "\"
FI.Name " target=_self;> " FI.Name "</a></td>");
}
Когда я попытался напечатать имена файлов с пробелами, вместо пробела в имени файла добавляется ‘#’, что создает для меня проблемы.
Кто-нибудь может подсказать решение для
Ответ №1:
Кодировка URL гарантирует, что все браузеры будут корректно передавать текст в строках URL. Такие символы, как вопросительный знак (?), амперсанд (amp;), косая черта (/) и пробелы, могут быть усечены или повреждены некоторыми браузерами. В результате эти символы должны быть закодированы в тегах или в строках запроса, где строки могут быть повторно отправлены браузером в строке запроса.
fileName = HttpServerUtility.UrlEncode(fileName);
Комментарии:
1. Только в этом случае это произойдет автоматически, поскольку браузер автоматически закодирует ссылку URLEncode. Пользователь забыл добавить кавычки.
2. Не могли бы вы уточнить свой ответ, пожалуйста. Я не мог понять.
3. Если вы знаете, что отправляемый вами текст может содержать специальные символы, всегда UrlEncode его.
4. FI = HttpServerUtility. UrlEncode (FI); Я добавил эту строку, но она выдает ошибку.
Ответ №2:
Попробуйте использовать кавычки!
FileInfo[] FileList1 = Dir.GetFiles("*.doc", SearchOption.AllDirectories);
foreach (FileInfo FI in FileList1)
{
Response.Write(
"<td><a href="view5.aspx?file=" strheadlinesid "\"
FI.Name "" target="_self"> " FI.Name "</a></td>");
}