Skip to content
Snippets Groups Projects
Commit bbf121f6 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

Fixed #311 - encode exported databases in utf-8

parent 2817c846
Branches
Tags
No related merge requests found
Pipeline #
...@@ -26,6 +26,7 @@ import tools.RandomCreations; ...@@ -26,6 +26,7 @@ import tools.RandomCreations;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException;
@Controller @Controller
...@@ -95,24 +96,31 @@ public class SettingsController extends BaseController ...@@ -95,24 +96,31 @@ public class SettingsController extends BaseController
{ {
LOGGER.debug("Exporting database..."); LOGGER.debug("Exporting database...");
String data = databaseService.getDatabaseAsJSON(); String data = databaseService.getDatabaseAsJSON();
try
{
byte[] dataBytes = data.getBytes("UTF8");
String fileName = "BudgetMasterDatabase_" + DateTime.now().toString("yyyy_MM_dd") + ".json"; String fileName = "BudgetMasterDatabase_" + DateTime.now().toString("yyyy_MM_dd") + ".json";
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
response.setContentType("application/json"); response.setContentType("application/json; charset=UTF-8");
response.setContentLength(data.length()); response.setContentLength(dataBytes.length);
response.setCharacterEncoding("UTF-8");
try(ServletOutputStream out = response.getOutputStream()) try(ServletOutputStream out = response.getOutputStream())
{ {
out.println(data); out.write(dataBytes);
out.flush(); out.flush();
LOGGER.debug("Exporting database DONE");
} }
catch(IOException e) catch(IOException e)
{ {
e.printStackTrace(); e.printStackTrace();
} }
}
LOGGER.debug("Exporting database DONE"); catch(UnsupportedEncodingException e)
{
e.printStackTrace();
}
} }
@RequestMapping("/settings/database/requestDelete") @RequestMapping("/settings/database/requestDelete")
......
...@@ -206,7 +206,7 @@ ...@@ -206,7 +206,7 @@
<div class="modal-content"> <div class="modal-content">
<h4>${locale.getString("info.title.database.import.dialog")}</h4> <h4>${locale.getString("info.title.database.import.dialog")}</h4>
<form id="form-database-import" method="POST" action="/settings/database/upload" enctype="multipart/form-data"> <form id="form-database-import" method="POST" action="/settings/database/upload" enctype="multipart/form-data" accept-charset="UTF-8">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
<div class="file-field input-field"> <div class="file-field input-field">
<div class="btn waves-effect waves-light budgetmaster-blue"> <div class="btn waves-effect waves-light budgetmaster-blue">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment