Hi everyone,
I am facing an issue with bad filename encoding while posting attachment to an issue.
The code I use:
def attachmentContentData = get("/rest/api/3/attachment/content/10078") // get attachment binary data
.asBinary()
.body
InputStream stream = new ByteArrayInputStream(attachmentContentData.getBytes()) // create binary stream
def attachmentMetadata = get("/rest/api/3/attachment/10078") // get attachment metadata
.asObject(Map)
.body
String fileName = attachmentMetadata["filename"] // define filename as String
def sendAttachment = post("/rest/api/3/issue/XXX-77/attachments") // send attachment
.header("Accept", "application/json")
.header("X-Atlassian-Token", "no-check")
.field("file", stream, fileName)
.asJson()
println sendAttachment
Response:
Body: [{"self":"https://myjirasite.atlassian.net/rest/api/3/attachment/10197","id":"10197","filename":"?RA-obr?zek.png","author":...
When the attachment's filename contains non ASCII characters, the characters are changed into the question marks, eg. "?esk?_Republika.png" vs. "Česká_Republika.png".
The problem probably arises when json is created.
When I
println fileName
it correctly returns "Česká_Republika.png".
I tried as much options to fix the issue as I could, including various ways of string transcoding.
Thank you in advance for your help.