There's no way to serialize using json and getting the exact same thing. Because if you serialize an utf-8 string with characters like 'á' you won't get an utf-8 string back when you json.load it, you will get an unicode string.
With this patch you get that utf-8 string back, however, you will also have unicode strings that you have placed in args converted to utf-8.
Note that this behaviour is already what happens with kwargs.
I don't think it's a corner case for anyone using anything other than ascii.
The only solution I can think off to keep the exact argument types would be to serialize the args and kwargs with pickle instead of json or having a sort of custom json serializer.