Неверное строковое значение: '\ xF0 \ x9F \ xA4 \ x96 - PullRequest
0 голосов
/ 05 марта 2019

Я установил тип столбца utf8mb4, а параметры сортировки - utf8mb4_bin. По умолчанию таблицы также имеют вид utf8mb4 и utf8mb4_bin.

Когда я использую SequelPro для добавления смайлика "?" в базу данных вручную, он работает просто отлично.

Однако, когда я делаю INSERT с использованием JDBC, он выдает мне ошибку «Неправильное строковое значение».

Вот моя строка подключения: jdbc:mysql://localhost:3306/myschema
Я использую mysql-connector-java-5.1.32-bin.jar

Что я делаю не так?

Вот часть кода, который я использую:

String sql = "INSERT INTO table VALUES (?)"
String body = ...;
statement = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
statement.setString(1, body)
statement.execute();

1 Ответ

1 голос
/ 06 марта 2019

Я понял это. Мне нужно было ввести characterEncoding=UTF-8 в URL-адрес соединения JDBC.

Подробнее здесь: https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-charsets.html

...