{"action":"created","issue":{"url":"https://api.github.com/repos/benbaptist/minecraft-wrapper/issues/242","labels_url":"https://api.github.com/repos/benbaptist/minecraft-wrapper/issues/242/labels{/name}","comments_url":"https://api.github.com/repos/benbaptist/minecraft-wrapper/issues/242/comments","events_url":"https://api.github.com/repos/benbaptist/minecraft-wrapper/issues/242/events","html_url":"https://github.com/benbaptist/minecraft-wrapper/issues/242","id":115770985,"number":242,"title":"Accended letters causes error","user":{"login":"Sasszem","id":9491836,"avatar_url":"https://avatars.githubusercontent.com/u/9491836?v=3","gravatar_id":"","url":"https://api.github.com/users/Sasszem","html_url":"https://github.com/Sasszem","followers_url":"https://api.github.com/users/Sasszem/followers","following_url":"https://api.github.com/users/Sasszem/following{/other_user}","gists_url":"https://api.github.com/users/Sasszem/gists{/gist_id}","starred_url":"https://api.github.com/users/Sasszem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sasszem/subscriptions","organizations_url":"https://api.github.com/users/Sasszem/orgs","repos_url":"https://api.github.com/users/Sasszem/repos","events_url":"https://api.github.com/users/Sasszem/events{/privacy}","received_events_url":"https://api.github.com/users/Sasszem/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-11-09T00:03:05Z","updated_at":"2015-11-10T21:02:52Z","closed_at":null,"body":"I'm Hungarian, so I'm playing from Hungary. For some reason, when I login into my server, I see that my game sends data with hungarien text in it, & that causes errors in Wrapper.py.\r\n\r\nI can not paste the full log, but I can tell that it says the error at Wrapper.py\\storage.py line 59, in function save: f.write(json.dump(self.data))\r\n...\r\nUnicodeDecodeError: 'utf8' codec can 't decode byte 0xf6 in position 2: ordinal not in range(128)\r\n\r\nWhat shoud I do? Change system language(MC's language is set to ENGLISH), or manually edit Wrapper.py\r\n\r\nNote: I've tried to edit W.py manually, but for some strange reason, still not work. Becouse I think it's python's fault, I've asked a q. at StackOwerflow"},"comment":{"url":"https://api.github.com/repos/benbaptist/minecraft-wrapper/issues/comments/155564873","html_url":"https://github.com/benbaptist/minecraft-wrapper/issues/242#issuecomment-155564873","issue_url":"https://api.github.com/repos/benbaptist/minecraft-wrapper/issues/242","id":155564873,"user":{"login":"Sasszem","id":9491836,"avatar_url":"https://avatars.githubusercontent.com/u/9491836?v=3","gravatar_id":"","url":"https://api.github.com/users/Sasszem","html_url":"https://github.com/Sasszem","followers_url":"https://api.github.com/users/Sasszem/followers","following_url":"https://api.github.com/users/Sasszem/following{/other_user}","gists_url":"https://api.github.com/users/Sasszem/gists{/gist_id}","starred_url":"https://api.github.com/users/Sasszem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sasszem/subscriptions","organizations_url":"https://api.github.com/users/Sasszem/orgs","repos_url":"https://api.github.com/users/Sasszem/repos","events_url":"https://api.github.com/users/Sasszem/events{/privacy}","received_events_url":"https://api.github.com/users/Sasszem/received_events","type":"User","site_admin":false},"created_at":"2015-11-10T21:02:52Z","updated_at":"2015-11-10T21:02:52Z","body":"Here's my code, it works fine for me:\nstorage.py\n\n**import json, os, threading, time, copy, traceback\nimport sys\nreload(sys)\nsys.setdefaultencoding(\"ISO-8859-1\")\nclass Storage:\n     def __init__(self, name, isWorld=None, root=\"wrapper-data/json\"):\n         self.name = name\n         self.root = root\n\n         self.data = {}\n         self.dataOld = {}\n         self.load()\n         self.abort = False\n         self.time = time.time()\n\n         t = threading.Thread(target=self.periodicSave, args=())\n         t.daemon = True\n         t.start()\n     def __del__(self):\n         self.abort = True\n         self.save()\n     def __getitem__(self, index):\n         if not type(index) == str:\n             raise Exception(\"A string must be passed to the stuff\")\n         return self.data[index]\n     def __setitem__(self, index, value):\n         if not type(index) == str:\n             raise Exception(\"A string must be passed to the stuff\")\n         self.data[index] = value\n         return self.data[index]\n     def __delattr__(self, index):\n         if not type(index) == str:\n             raise Exception(\"A string must be passed to the stuff\")\n         del self.data[index]\n     def __iter__(self):\n         for i in self.data:\n             yield i\n     def periodicSave(self):\n         while not self.abort:\n             if time.time() - self.time > 10:\n                 if not self.data == self.dataOld:\n                     try:\n                         self.save()\n                     except:\n                         print traceback.format_exc()\n                     self.time = time.time()\n             time.sleep(1)\n     def load(self):\n         l = \"\"\n         for i in self.root.split(\"/\"):\n             l += i + \"/\"\n             if not os.path.exists(l):\n                 try: os.mkdir(l)\n                 except: pass\n         if not os.path.exists(\"%s/%s.json\" % (self.root, self.name)):\n             self.save()\n         with open(\"%s/%s.json\" % (self.root, self.name), \"r\") as f:\n             self.data = json.loads(f.read(),\"ISO-8859-1\")\n         self.dataOld = copy.deepcopy(self.data)\n     def save(self):\n         with open(\"%s/%s.json\" % (self.root, self.name) , \"w\") as f:\n             f.write(json.dumps(self.data,ensure_ascii=False))\n         self.flush = False\n     def key(self, key, value=None):\n         if value == None:\n             return self.getKey(key)\n         else:\n             self.setKey(key, value)\n     def getKey(self, key):\n         if key in self.data:\n             return self.data[key]\n         else:\n             return None\n     def setKey(self, key, value=None):\n         if value == None:\n             if key in self.data: del self.data[key]\n         else:\n             self.data[key] = value\n         self.flush = True**\n\n\nI've only modified the 2-4th, 58th & 62th lines to adapt it to \nISO-8859-1 encoding\n\n2015.11.10. 21:34 keltezéssel, Surest Texas írta:\n> I think we will all be interested. I have noticed issues with \n> getStorage objects.\n>\n>\n> ________________________________\n> From: Sasszem <notifications@github.com>\n> Sent: Tuesday, November 10, 2015 11:40 AM\n> To: benbaptist/minecraft-wrapper\n> Cc: Surest Texas\n> Subject: Re: [minecraft-wrapper] Accended letters causes error (#242)\n>\n> I had fixed it by changing the encoding, now it works fine.\n> If you want, I'll send you my version of storage.py\n> There's another problem, but it's different, & I'll open a new issue.\n>\n> 2015.11.10. 1:05 keltezéssel, Surest Texas írta:\n> > From experience, this is probably related to a plugin you are running.\n> > Specifically, your plugin may be storing data in the the getStorage()\n> > method. When wrapper attempts periodically save it, the error occurs.\n> > The error happens because whatever you are saving is not Json \n> complaint...\n> >\n> >\n> > That's been my experience with these errors, anyway.\n> >\n> >\n> > You can verify this is a wrapper storage item or a plugin by disabling\n> > your plugins and trying to run...\n> >\n> >\n> > ________________________________\n> > From: Sasszem <notifications@github.com>\n> > Sent: Monday, November 9, 2015 4:01 PM\n> > To: benbaptist/minecraft-wrapper\n> > Subject: Re: [minecraft-wrapper] Accended letters causes error (#242)\n> >\n> >\n> > I was able to record log:\n> >\n> > [21:56:17] [Wrapper.py/INFO] Wrapper.py started - Version 0.7.6 (stable)\n> > [21:56:17] [Wrapper.py/INFO] Loading plugins...\n> > [21:56:17] [Wrapper.py/INFO] Starting server...\n> > [21:56:22] [Server thread/INFO]: Starting minecraft server version 1.8.8\n> > [21:56:22] [Server thread/INFO]: Loading properties\n> > [21:56:22] [Server thread/INFO]: Default game type: SURVIVAL\n> > [21:56:22] [Server thread/INFO]: Generating keypair\n> > [21:56:22] [Server thread/INFO]: Starting Minecraft server on :25565\n> > [21:56:22] [Server thread/INFO]: Using default channel type\n> > [21:56:23] [Server thread/WARN]: *** SERVER IS RUNNING IN\n> > OFFLINE/INSECURE MODE!\n> > [21:56:23] [Server thread/WARN]: The server will make no attempt to\n> > authenticate usernames. Beware.\n> > [21:56:23] [Server thread/WARN]: While this makes the game possible to\n> > play without internet access, it also opens up the ability for hackers\n> > to connect with any username they choose.\n> > [21:56:23] [Server thread/WARN]: To change this, set \"online-mode\" to\n> > \"true\" in the server.properties file.\n> > [21:56:23] [Server thread/INFO]: Preparing level \"world\"\n> > [21:56:23] [Server thread/INFO]: Preparing start region for level 0\n> > [21:56:23] [Server thread/INFO]: Done (0,826s)! For help, type \"help\"\n> > or \"?\"\n> > [21:56:24] [Wrapper.py/INFO] Server started\n> > [21:56:26] [Server thread/INFO]: Sasszem[/127.0.0.1:52226] logged in\n> > with entity id 309 at (118.12095411450942, 87.47075120835132,\n> > 403.92822429072436)\n> > [21:56:26] [Server thread/INFO]: Sasszem joined the game\n> > [21:56:36] [Server thread/INFO]: I'm logged in\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > [21:58:08] [Server thread/INFO]: Waiting 4 server to call periodicSave\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > [21:58:32] [Server thread/INFO]: Becouse of redirection the output to\n> > file, I can't see messages\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > Traceback (most recent call last):\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 40, in\n> > periodicSave\n> > self.save()\n> > File \"C:\\Users\\User\\Desktop\\server\\Wrapper.py\\storage.py\", line 59, in\n> > save\n> > f.write(json.dumps(self.data))\n> > File \"C:\\Python27\\lib\\json__init__.py\", line 243, in dumps\n> > return _default_encoder.encode(obj)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 201, in encode\n> > chunks = self.iterencode(o, _one_shot=True)\n> > File \"C:\\Python27\\lib\\json\\encoder.py\", line 264, in iterencode\n> > return _iterencode(o, 0)\n> > UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 1:\n> > invalid start byte\n> >\n> > [21:59:42] [Server thread/INFO]: I hope that waiting was enught\n> > [21:59:45] [Server thread/INFO]: [Sasszem: Stopping the server]\n> > [21:59:45] [Server thread/INFO]: Stopping server\n> > [21:59:45] [Server thread/INFO]: Saving players\n> > [21:59:45] [Server thread/INFO]: Sasszem lost connection:\n> > TextComponent{text='Server closed', siblings=[],\n> > style=Style{hasParent=false, color=null, bold=null, italic=null,\n> > underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null,\n> > insertion=null}}\n> > [21:59:45] [Server thread/INFO]: Sasszem left the game\n> > [21:59:45] [Server thread/INFO]: Saving worlds\n> > [21:59:45] [Server thread/INFO]: Saving chunks for level \n> 'world'/Overworld\n> > [21:59:45] [Server thread/INFO]: Saving chunks for level 'world'/Nether\n> > [21:59:45] [Server thread/INFO]: Saving chunks for level 'world'/The End\n> > [21:59:46] [Server Shutdown Thread/INFO]: Stopping server\n> > [21:59:46] [Server Shutdown Thread/INFO]: Saving players\n> > [21:59:46] [Server Shutdown Thread/INFO]: Saving worlds\n> > [21:59:46] [Server Shutdown Thread/INFO]: Saving chunks for level\n> > 'world'/Overworld\n> > [21:59:46] [Wrapper.py/INFO] Server stopped\n> > [21:59:46] [Wrapper.py/ERROR] Disabling plugins...\n> >\n> > -\n> > Reply to this email directly or view it on\n> > \n> GitHub<https://github.com/benbaptist/minecraft-wrapper/issues/242#issuecomment-155191843>.\n> >\n> > -\n> > Reply to this email directly or view it on GitHub\n> > \n> <https://github.com/benbaptist/minecraft-wrapper/issues/242#issuecomment-155239040>.\n> >\n>\n>\n> -\n> Reply to this email directly or view it on \n> GitHub<https://github.com/benbaptist/minecraft-wrapper/issues/242#issuecomment-155481034>.\n>\n> [https://avatars2.githubusercontent.com/u/9491836?v=3&s=400]<https://github.com/benbaptist/minecraft-wrapper/issues/242#issuecomment-155481034>\n>\n> Accended letters causes error · Issue #242 · benbaptist/minecraft-wrapper\n> I'm Hungarian, so I'm playing from Hungary. For some reason, when I \n> login into my server, I see that my game sends data with hungarien \n> text in it, & that causes errors in Wrapper.py. I can not pas...\n> Read \n> more...<https://github.com/benbaptist/minecraft-wrapper/issues/242#issuecomment-155481034>\n>\n>\n> —\n> Reply to this email directly or view it on GitHub \n> <https://github.com/benbaptist/minecraft-wrapper/issues/242#issuecomment-155557612>.\n>\n\n"}}