Кодирование апострофа

S3 может иметь подкаталоги. Просто поместите "/" в ключевое имя, и можно получить доступ к файлам, как будто они были в отдельных каталогах. Я использую это, чтобы хранить пользовательские файлы в отдельных папках на основе их идентификатора пользователя в S3.

, Например: "mybucket/users/1234/somefile.jpg". Это не точно то же как каталог в файловой системе, но S3 API имеет некоторые функции, которые позволяют ему работать почти то же. Я могу попросить, чтобы он перечислил все файлы, которые начинаются "с пользователей/1234 /" и это покажет мне все файлы в том "каталоге".

7
задан leora 4 August 2009 в 05:26
поделиться

3 ответа

Для этого лучше использовать Библиотеку сценариев Microsoft Anti-Cross Site . Они предоставляют метод JavaScriptEncode, который делает то, что вы хотите:

Microsoft.Security.Application.AntiXss.JavaScriptEncode("My 'Quotes' and ""more"".", False)
10
ответ дан 6 December 2019 в 15:25
поделиться

Я не уверен, в каком контексте вы используете эту строку, но \ ' может быть тем, что вы ищете. Обратная косая черта является escape-символом и позволяет вам использовать определенные символы , которые иначе не могут присутствовать в строковом литерале. Вот как должен выглядеть выходной код JavaScript:

alert('It\'s amazing');

Конечно, вы можете использовать alert («Это потрясающе»); ​​ в данном конкретном случае.

В любом случае, если вы создаете код JavaScript :

html = html.Replace("'", "\\'");

С другой стороны, помимо апострофов есть и другие символы, которые требуют некоторой обработки. Использование библиотеки сценариев Microsoft Anti-Cross Site Scripting Library позволит получить их все сразу.

1
ответ дан 6 December 2019 в 15:25
поделиться

Символы, которые необходимо экранировать в строковом значении, - это обратная косая черта и символ, используемый в качестве разделителя строки.

Если апострофы (') используются в качестве разделителя строки:

html = html.Replace(@"\", @"\\").Replace("'", @"\'");

Если кавычки (") используются как разделитель строк:

html = html.Replace(@"\", @"\\").Replace(@"""", @"\""");

Если вы не знаете, какой разделитель используется, или если он может измениться в будущем, вы можете просто избежать обоих:

html = html.Replace(@"\", @"\\").Replace("'", @"\'").Replace(@"""", @"\""");
0
ответ дан 6 December 2019 в 15:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: