안녕하세요.
소재 등록 API에서 multipart/form-data 형식으로 호출 시 소재 이미지 파일 이름이 한글일 경우 RESPONSE의 image[fileName]이 물음표로 깨져서 오는 문제가 있습니다.
"image":{"url":"...","fileName":"??01.png",
아래는 API에 사용한 소스코드입니다.
List<Part> partList = Lists.newArrayList();
FilePart filePart = new FilePart("imageFile", file.getName(), file, "image/png", StandardCharsets.UTF_8.name());
// FilePart filePart = new FilePart("imageFile", new String(file.getName().getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8), file, "image/png", StandardCharsets.UTF_8.name());
partList.add(filePart);
for (String key : params.keySet()) {
StringPart part = new StringPart(key, String.valueOf(params.get(key)), StandardCharsets.UTF_8.name());
partList.add(part);
}
Part[] parts = new Part[ partList.size() ];
partList.toArray(parts);
PostMethod postMethod = new PostMethod(API_HOST + path);
for (Header h : headers) {
postMethod.addRequestHeader(h.getName(), h.getValue());
}
postMethod.setRequestEntity(new MultipartRequestEntity(parts, postMethod.getParams()));
HttpClient client = new HttpClient();
int result = client.executeMethod(postMethod);
String response = IOUtil.toString(postMethod.getResponseBodyAsStream(), StandardCharsets.UTF_8);
...
stringpart에 추가되는 기타 파라미터들(소재 이름, 설명)은 한글깨짐 문제가 없는데, filepart로 넘겼던 파일 이름 중 한글 부분만 물음표로 보여지는 문제가 생기고 있습니다.(ui상에서도 물음표로 보입니다.)
stringpart에 사용된 한글이 깨지지 않는걸 보면 인코딩 문제는 아닌듯한데,
검토좀 부탁드려도 될까요?
광고 계정 id : 43444
소재 등록 테스트 그룹 id : 1197696
등록에 사용한 이미지 파일 이름 : 배너01.png
입니다.
감사합니다.