From 933bb3395bdf0249737a9cc891dbaf822830732c Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Thu, 23 Mar 2017 19:50:33 +0100
Subject: [PATCH] Fixed wrong encoding of settings.json, Fixed export

---
 .classpath                                        |  2 +-
 src/de/deadlocker8/budgetmaster/logic/Budget.java |  6 ++++++
 src/de/deadlocker8/budgetmaster/logic/Utils.java  | 13 +++++++++----
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/.classpath b/.classpath
index ec96f8d09..d67069e90 100644
--- a/.classpath
+++ b/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry including="**/*.java" kind="src" output="target/classes" path="src">
+	<classpathentry kind="src" output="target/classes" path="src">
 		<attributes>
 			<attribute name="optional" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
diff --git a/src/de/deadlocker8/budgetmaster/logic/Budget.java b/src/de/deadlocker8/budgetmaster/logic/Budget.java
index b589142dc..a7aef0079 100644
--- a/src/de/deadlocker8/budgetmaster/logic/Budget.java
+++ b/src/de/deadlocker8/budgetmaster/logic/Budget.java
@@ -37,4 +37,10 @@ public class Budget
 	{
 		return paymentSum;
 	}
+
+	@Override
+	public String toString()
+	{
+		return "Budget [incomeSum=" + incomeSum + ", paymentSum=" + paymentSum + "]";
+	}
 }
\ No newline at end of file
diff --git a/src/de/deadlocker8/budgetmaster/logic/Utils.java b/src/de/deadlocker8/budgetmaster/logic/Utils.java
index bb8fefa74..55789dca5 100644
--- a/src/de/deadlocker8/budgetmaster/logic/Utils.java
+++ b/src/de/deadlocker8/budgetmaster/logic/Utils.java
@@ -2,6 +2,9 @@ package de.deadlocker8.budgetmaster.logic;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.Reader;
+import java.io.Writer;
+import java.nio.charset.Charset;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.Locale;
@@ -17,14 +20,14 @@ public class Utils
 	
 	public static Settings loadSettings()
 	{
-		String settingsJSON;
 		Settings settings;
 		try
 		{
 			Gson gson = new Gson();
 			PathUtils.checkFolder(new File(PathUtils.getOSindependentPath() + bundle.getString("folder")));
-			settingsJSON = new String(Files.readAllBytes(Paths.get(PathUtils.getOSindependentPath() + bundle.getString("folder") + "/settings.json")));				
-			settings = gson.fromJson(settingsJSON, Settings.class);	
+			Reader reader = Files.newBufferedReader(Paths.get(PathUtils.getOSindependentPath() + bundle.getString("folder") + "/settings.json"), Charset.forName("UTF-8"));
+			settings = gson.fromJson(reader, Settings.class);	
+			reader.close();
 			return settings;
 		}
 		catch(IOException e)
@@ -38,6 +41,8 @@ public class Utils
 		Gson gson = new Gson();
 		String jsonString = gson.toJson(settings);
 		
-		Files.write(Paths.get(PathUtils.getOSindependentPath() + bundle.getString("folder")  + "/settings.json"), jsonString.getBytes());	
+		Writer writer = Files.newBufferedWriter(Paths.get(PathUtils.getOSindependentPath() + bundle.getString("folder")  + "/settings.json"), Charset.forName("UTF-8"));
+		writer.write(jsonString);
+		writer.close();
 	}
 }
\ No newline at end of file
-- 
GitLab