У меня есть эта таблица MySQL в производстве, которая имеет charset latin1_swedish_ci (aka latin1).«Неверное строковое значение:« Ошибка MySQL при вставке текста UTF8 в столбец latin1
Прямо сейчас, есть этот входящий контент (String: «\ ud55c \ ubc24 \ uc758») в формате UTF-8, который должен быть вставлен в это поле столбца TEXT называется ключевые слова в таблице.
Когда я пытаюсь выполнить INSERT, я получаю эту ошибку:
Incorrect string value: '\xED\x95\x9C\xEB\xB0\xA4...' for column 'keywords' at row 1
Я попробовал все виды способов в моей Java-кода, чтобы попытаться преобразовать из UTF8 в ISO-8859-1, как это ниже и я все еще получаю ту же ошибку:
String convertedString = new String(originalString.getBytes("UTF-8"), "ISO-8859-1");
Я знаю, что есть решения на StackOverflow, которые упоминают изменить кодировку таблицы MySQL в UTF8 из latin1, и я, к сожалению, не могу этого сделать, потому что это живая продукция MySQL-сервер, а также он исторически был нами латинский1.
У кого-нибудь есть предложения по исправлению ошибки «Неверное строковое значение»?
Благодаря IS
Вам необходимо изменить кодировку _in Java_ с usc2 на utf8. 'ISO-8859-1' нигде не участвует в том, что вы показываете. Вы надеялись на '' ', правильно? –
Привет, Рик Джеймс, спасибо за быстрый ответ. Что вы понимаете, изменив кодировку с usc2 на utf8? Извините, я не следую. И да, я хотел бы добраться до 한밤 – user1805458
Так что раньше был старый скрипт Python, который читал бы этот текст в Юникоде из другой базы данных MySQL (в utf-8) и записывал его в эту базу данных latin1 MySQL, и этот текст показывал бы Как я могу понять, как преобразовать «\ ud55c \ ubc24 \ uc758» в «í • œë ° ¤ì~» в моем Java-коде, тогда я хорошо – user1805458