Skip to content

Commit 51f87f7

Browse files
committed
better support for utf-8
1 parent c067695 commit 51f87f7

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

cloudinary-http42/src/main/java/com/cloudinary/http42/UploaderStrategy.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.File;
44
import java.io.IOException;
55
import java.io.InputStream;
6+
import java.nio.charset.Charset;
67
import java.util.Collection;
78
import java.util.Map;
89

@@ -58,18 +59,19 @@ public Map callApi(String action, Map<String, Object> params, Map options, Objec
5859

5960
HttpPost postMethod = new HttpPost(apiUrl);
6061
postMethod.setHeader("User-Agent", Cloudinary.USER_AGENT);
62+
Charset utf8 = Charset.forName("UTF-8");
6163

6264
MultipartEntity multipart = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
6365
// Remove blank parameters
6466
for (Map.Entry<String, Object> param : params.entrySet()) {
6567
if (param.getValue() instanceof Collection) {
6668
for (Object value : (Collection) param.getValue()) {
67-
multipart.addPart(param.getKey() + "[]", new StringBody(ObjectUtils.asString(value)));
69+
multipart.addPart(param.getKey() + "[]", new StringBody(ObjectUtils.asString(value), utf8));
6870
}
6971
} else {
7072
String value = param.getValue().toString();
7173
if (StringUtils.isNotBlank(value)) {
72-
multipart.addPart(param.getKey(), new StringBody(value));
74+
multipart.addPart(param.getKey(), new StringBody(value, utf8));
7375
}
7476
}
7577
}
@@ -80,7 +82,7 @@ public Map callApi(String action, Map<String, Object> params, Map options, Objec
8082
if (file instanceof File) {
8183
multipart.addPart("file", new FileBody((File) file));
8284
} else if (file instanceof String) {
83-
multipart.addPart("file", new StringBody((String) file));
85+
multipart.addPart("file", new StringBody((String) file, utf8));
8486
} else if (file instanceof byte[]) {
8587
multipart.addPart("file", new ByteArrayBody((byte[]) file, "file"));
8688
} else if (file == null) {

cloudinary-http42/src/test/java/com/cloudinary/test/UploaderTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ public void testUploadDataUri() throws IOException {
8585
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret);
8686
assertEquals(result.get("signature"), expected_signature);
8787
}
88+
89+
@Test
90+
public void testUploadUTF8() throws IOException {
91+
Map result = cloudinary.uploader().upload("src/test/resources/logo.png", ObjectUtils.asMap("public_id", "Plattenkreiss_ñg-é"));
92+
assertEquals(result.get("public_id"), "Plattenkreiss_ñg-é");
93+
}
8894

8995
@Test
9096
public void testRename() throws Exception {

0 commit comments

Comments
 (0)