2016-07-01 2 views
2

우리는 JOOQ를 사용하여 MySQL 5.6 데이터베이스에 이모티콘을 저장하고 읽으려고합니다. 데이터베이스, 테이블 및 열은 문자 집합 utf8mb4 및 데이터 정렬 utf8mb4_unicode_ci를 사용합니다. MySQL Workbench에서는 이모티콘을 만들고 선택할 수 있습니다. 따라서 데이터베이스가 준비되어야합니다. 내가 JOOQ와 함께 이모티콘을 저장하면JOOQ 이모티콘 (utf8mb4) 지원

는하지만 얻을 : 잘못된 문자열 값을 '\ xF0 \ x9F \ x98 \ X80'열 '테스트'에 대한 행에 1SQL

DSLContext dslContext = DSL.using(dataSource, SQLDialect.MYSQL); 

dslContext.insertInto(table) 
       .set(testRecord) 
       .returning() 
       .fetchOne(); 

가져 내가 저장 이모티콘 엉 MySQL Workbench가 잘 동작합니다.

답변

1

응용 프로그램에서 utf8mb4를 사용하려면 서버 수준에서 또는 쿼리를 수행하기 전에 설정해야합니다.

그 일의 2 가지 방법이 있습니다 :

  1. 서버 수준 : "이름을 설정 = utf8mb4 쿼리를 실행하기 전에

  2. "글로벌 character_set_server = utf8mb4 설정 "는 my.cnf하거나 character_set_server를 추가 utf8mb4 "

+0

JOOQ로 이것을 수행하는 방법을 알고 계십니까? 문제는 내가 자체 작성 서버에서 서비스를 실행하는 것입니다. – user1482309

+1

JOOQ를 사용하여 구체적인 방법을 모릅니다. 그러나 mysql 루트 암호가있는 경우 서버의 문자 집합을 전역 적으로 설정할 수 있습니다. "set global character_set_server = utf8mb4" –