Предупреждения, кодирующие строку C # в строку Javascript

Я пытаюсь написать собственный класс Javascript MVC3 Helper для моего проекта, и предполагается, что один из методов экранирует строки C # в строки Javascript.

Я знаю, что C # строкиВ кодировке UTF-16и строки Javascriptтоже вроде бы UTF-16, Здесь нет проблем.

Я знаю, что некоторые символы, такие как обратная косая черта, одинарные или двойные кавычки, должны быть экранированы обратной косой чертой в Javascript так:

\ becomes \\
' becomes \'
" becomes \"

Есть ли еще какие-то предостережения, о которых я должен знать, прежде чем писать свой метод конвертации?

РЕДАКТИРОВАТЬ: пока хорошие ответы, я добавляю некоторые ссылки из ответов в вопросе, чтобы помочь другим в будущем.

Алекс К. предложил использоватьSystem.Web.HttpUtility.JavaScriptStringEncode, который я пометил как правильный ответ для меня, потому что я использую .Net 4. Но эта функция недоступна для предыдущих версий .Net, поэтому я добавляю некоторые другие ресурсы здесь:

CR  becomes \r   // Javascript string cannot be broke into more than 1 line
LF  becomes \n   // Javascript string cannot be broke into more than 1 line
TAB becomes \t

Control characters must be Hex-Escaped

JP Richardson дал интересную ссылку, сообщающую, что Javascript использует UCS-2, который является подмножеством UTF-16, но как правильно его кодировать - это совершенно новый вопрос.

LukeH в комментариях ниже напомнил символы CR, LF и TAB, и это напомнило мне контрольные символы (BEEP, NULL, ACK и т. Д.).

Ответы на вопрос(4)

Ваш ответ на вопрос