У меня очень странная проблема в том, как строки хранятся в моей базе данных, и в результате я получаю эти ошибки «unterminated string literal» в Javascript.String Encoding Issue
Вот краткий обзор того, что я делаю:
Платформа: 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 «„Продолжительность“: 6,0»
Compile Анализ & Рекомендации колода
UPDATE После разговора с пользователем, я обнаружил, что они использовали тыс e копирование и вставка из текстового документа в HTML-форму.
Сама форма использует диспетчер подключений YUI для создания асинхронного вызова POST (AJAX) для сохранения значений формы. База данных сохранила значение поля формы вместе с любой связанной с ним кодировкой.
Кажется, что в Word есть символы, которые можно печатать, но не в ASCII. Есть ли способ обнаружить это и правильно закодировать?
Спасибо. Я думаю, что проблема заключалась в копировании пользователя и вклеивании символов, которые НЕ были печатаемыми символами ASCII. – Abe
В этом случае мы взяли символы Unicode как Ascii, а затем отобразили полученные 8-битные символы в соответствующие 7-битные печатные символы ascii. – Dave
Чтобы быть более точным, пользователь скопировал текст из документа Word в форму.Я не уверен, какие символы были вставлены, но они не привели к тому, что строка не завершилась правильно; это решение, о котором вы говорили, для таких случаев? Еще раз спасибо! – Abe