decode file names with filesystem encoding, then encode as utf-8 before encoding with simplejson

This commit is contained in:
Alan Hamlett 2013-12-02 09:20:25 +01:00
parent 61611c2681
commit 9172ef21bf
2 changed files with 3 additions and 2 deletions

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """
wakatime-cli wakatime-cli

View File

@ -11,6 +11,7 @@
import logging import logging
import os import os
import sys
from .packages import simplejson as json from .packages import simplejson as json
try: try:
@ -28,7 +29,8 @@ class CustomEncoder(json.JSONEncoder):
try: try:
encoded = super(CustomEncoder, self).default(obj) encoded = super(CustomEncoder, self).default(obj)
except UnicodeDecodeError: except UnicodeDecodeError:
obj = obj.decode('utf-8', 'ignore') encoding = sys.getfilesystemencoding()
obj = obj.decode(encoding, 'ignore').encode('utf-8')
encoded = super(CustomEncoder, self).default(obj) encoded = super(CustomEncoder, self).default(obj)
return encoded return encoded