Я использую Java.Это чистые данные, которые вставляются в хранилище данных:
<p>Something</p>\n<p>That</p>\n<p> </p>\n<p>Should.</p>\n<p> </p>\n
<p>I have an interesting question.</p>\n<p>Why are you like this?</p>\n
<p> </p>\n<p>Aren't you fine?</p>
Вот как они хранятся:
<p>Something</p> <p>That</p> <p>�</p> <p>Should.</p> <p>�</p>
<p>I have an interesting question.</p> <p>Why are you like this?</p>
<p>�</p> <p>Aren't you fine?</p>
Что случилось со странными символами?Это происходит только вживую, а не на моем локальном dev_appserver.
РЕДАКТИРОВАТЬ
Вот код, который вставляет данные:
String content = ""; // this is where the data is stored
try {
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter = upload.getItemIterator(request);
while(iter.hasNext()) {
FileItemStream item = iter.next();
InputStream stream = item.openStream();
if(item.isFormField()) {
String fieldName = item.getFieldName();
String fieldValue = new String(IOUtils.toByteArray(stream), "utf-8");
LOG.info("Got a form field: " +fieldName+" with value: "+fieldValue);
// assigning the value
if(fieldName.equals("content")) content = fieldValue;
} else {
...
}
}
} catch (FileUploadException e){
}
...
// insert it in datastore
Recipe recipe = new Recipe(user.getKey(), title, new Text(content), new Text(ingredients), tagsAsStrings);
pm.makePersistent(recipe);
Это multipart/form-data
форма, поэтому я должен сделать эту маленькую магию item.isFormField()
, чтобы получить реальное содержимое, и создать строку.Может быть, это вызывает странную проблему с кодировкой?Не уверен.
Для извлечения данных я просто делаю:
<%=recipe.getContent().getValue()%>
Поскольку content
имеет тип Text (тип движка приложения), я использую .getValue()
для получения фактического результата.,Я не думаю, что это проблема с извлечением данных, так как я могу видеть странные символы непосредственно в онлайн-просмотрщике хранилища данных движка приложений.