Hi Steve,
Please take a look at the RestServices module in the appstore. It has full support of sending binary data to rest services, for example by using the 'post' action.
Besides that, please not that a WebService != Restservice. Webservices use XML where binary data is base64 encoded, so instead of using unescape Java (which will just replace some quotes and slashed), you should use Base64DecodeToFile from community commons if you are publishing the webservice and want the xml string converted back to a file.
To solve this problem, I stopped using the content directly and went back to grabbing the actual file document and using the community commons to encode it as a string.
I followed these steps: