한글 데이터 스마트 컨트랙에 입력시에 Sope에서 한글이 깨져서 나옵니다
UTF-8 에 보면 데이터를 숫자는 보이나 한글은 깨져 있습니다
해당 tx address 공유드립니다.
안녕하세요~ 포럼에 질문 올려주셔서 감사드립니다.
내부 확인 결과, 정상적인 UTF-8 데이터가 아니라서 한글이 깨지는 현상이 발생한 것 같습니다.(http://baobab.scope.klaytn.com/tx/0x082cd090efec54df42bd15d539dd0a112ddd5ccc17e175ac7595cbe4ec45df3f?tabId=inputData) 의 예를 보시면 기능 자체에는 이상이 없는 것을 확인하실 수 있습니다.
감사합니다.
안녕하세요 UTF-8을 어떻게 encoding 해야 되는지 알수 있을까요?
예를 들어 아래와 같이 rank 자체를 UTF-8으로 변환해서 보내보고, encodeData 자체를 변환 시켜 봤는데 안되는거 같습니다.
byte[] bytes = bundlePack.getRank().getBytes(StandardCharsets.UTF_8);
String rank = new String(bytes, StandardCharsets.UTF_8);
String encodeData = contract.getMethod("insertPack").encodeABI(Arrays.asList(
bundlePack.getBundleId().intValue(),
bundlePack.getPackId().intValue(),
bundlePack.getSortDate(),
Optional.ofNullable(bundlePack.getUserCode()).orElse(""),
rank,
Optional.ofNullable(bundlePack.getUnitSize()).orElse(""),
bundlePack.getWeight().intValue(),
Optional.ofNullable(bundlePack.getGoodsType()).orElse(""),
Optional.ofNullable(bundlePack.getSortNumber()).orElse(""),
Optional.ofNullable(bundlePack.getOrigin()).orElse("")
));
@Kewwon 오래전 답변 주신거긴 한데 시간되시면 확인 부탁드립니다.
안녕하세요,
추가적으로 질문 남겨주셔서 감사드립니다.
인풋데이터가 UTF8 포맷의 텍스트가 아니라 contract 의 insertaPack
라는 method 를 호출하는 명령어 코드여서 decode를 할 수 없는 것으로 보입니다.
당장 이 부분의 개선이 힘들 수는 있지만,
저희 쪽에서도 해당 부분에 대해 개선될 수 있도록 신경쓰겠습니다.
감사합니다.