이모티콘을 mysql에 저장할 때 자바 애플리케이션에서 다음 방식을 사용했다. 




* A 서버 

 mysql connector java : 5.1.21 환경


update set names utfmd4를 사용하지 않고 이모티콘을 잘 저장했다. 

(테이블은 utf8, 컬럼은 utfmd4이었다)



* B 서버


mysql connector java : 5.1.35 환경


update set names utfmd4를 사용해야 이모티콘을 잘 저장했다  

(테이블은 utf8, 컬럼은 utfmd4이었다)

 

  public boolean updateDNS(final DNS dns) {

return transactionTemplate.execute(new TransactionParamBuilder().add(masterJdbcTemplate).build(), new TransactionCallback<Integer>() {

@Override

public Integer doInTransaction() {

masterJdbcTemplate.update("SET NAMES utf8mb4");

String sql = "UPDATE dns SET lang=?, type=?, content=?, status=? WHERE id=?";

return masterJdbcTemplate.update(sql, dns.lang, dns.type, dns.content, 1, dns.id);

}

}) > 0;

}

 

 



아마도..다음 이슈때문은 아닌지... 예상만 한다. 


https://dev.mysql.com/doc/relnotes/connector-j/5.1/en/news-5-1-33.html


The 4-byte UTF8 (utfbmb4) character encoding could not be used with Connector/J when the server collation was set to anything other than the default value (utf8mb4_general_ci). This fix makes Connector/J detect and set the proper character mapping for any utfmb4 collation. (Bug #19479242, Bug #73663)




Posted by 김용환 '김용환'

댓글을 달아 주세요