У меня очень странная проблема с тем, как строки хранятся в моей базе данных, и в результате я получаю эти «неопределенные строковые литералы» ошибки в Javascript.
Вот обзор того, что я делаю:
Платформа: C # / ASP.NET MVC 1.0, SQL Server 2005, SparkViewEngine, YUI 2
На мой взгляд, я сериализую объект в структуру данных JSON, используя Json.NET из NewtonSoft.
<script type="text/javascript">
// <![CDATA[
var data = YAHOO.lang.JSON.parse("${Newtonsoft.Json.JsonConvert.Serialize(Model)}");
....
</script>
Обычно это работает, но я заметил, что одно из полей, которые я извлекаю из базы данных, содержит следующие данные, что приводит к неправильному формированию строки.
Поле базы данных: NVARCHAR (2000) .
Для некоторых записей я получаю эти странные символы в строке при копировании и вставке из базы данных в блокнот.
Компилировать? Анализ? &? Рекомендации? дека
В Firebug это выглядит как куча разрывов строк:
Колода анализа и рекомендаций "," StartDate ":" 1/19/10 "," FinishDate ":" 1/26/10 "," Duration ": 6,0,"
Компиляция анализа и рекомендаций колода
UPDATE
Поговорив с пользователем, я обнаружил, что они используют копирование и вставку из текстового документа в HTML-форму.
Форма сама использует диспетчер соединений YUI для выполнения асинхронного вызова POST (AJAX) для сохранения значений формы.
База данных сохранила значение поля формы вместе с любой кодировкой, связанной с ним.
Кажется, что в Word есть символы, которые можно распечатать, но не в ASCII. Есть ли способ обнаружить это и правильно кодировать?