From 06e2487189d5c2e97cbe0cd54c9d6cccbde3bda6 Mon Sep 17 00:00:00 2001 From: Tom Morris Date: Fri, 4 Feb 2011 03:15:12 +0000 Subject: [PATCH] Issue 276 - patch from pxb1... to fix character encoding issue with CreateProject command slightly modified to preserve request encoding if it has one git-svn-id: http://google-refine.googlecode.com/svn/trunk@2000 7d457c2a-affb-35e4-300a-418c747d4874 --- .../commands/project/CreateProjectCommand.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/main/src/com/google/refine/commands/project/CreateProjectCommand.java b/main/src/com/google/refine/commands/project/CreateProjectCommand.java index 5b664de25..dee2ccf3f 100644 --- a/main/src/com/google/refine/commands/project/CreateProjectCommand.java +++ b/main/src/com/google/refine/commands/project/CreateProjectCommand.java @@ -97,6 +97,14 @@ public class CreateProjectCommand extends Command { ProjectManager.singleton.setBusy(true); try { + + /* + * Set UTF-8 as request encoding, then ServletFileUpload will use it as default encoding + */ + if (request.getCharacterEncoding() == null) { + request.setCharacterEncoding("UTF-8"); + } + /* * The uploaded file is in the POST body as a "file part". If * we call request.getParameter() then the POST body will get @@ -150,7 +158,7 @@ public class CreateProjectCommand extends Command { InputStream stream = item.openStream(); if (item.isFormField()) { if (name.equals("raw-text")) { - Reader reader = new InputStreamReader(stream,"UTF-8"); + Reader reader = new InputStreamReader(stream,request.getCharacterEncoding()); try { internalInvokeImporter(project, new TsvCsvImporter(), metadata, options, reader); imported = true; @@ -158,9 +166,9 @@ public class CreateProjectCommand extends Command { reader.close(); } } else if (name.equals("project-url")) { - url = Streams.asString(stream); + url = Streams.asString(stream, request.getCharacterEncoding()); } else { - options.put(name, Streams.asString(stream)); + options.put(name, Streams.asString(stream, request.getCharacterEncoding())); } } else { String fileName = item.getName().toLowerCase();