このMySQLテーブルは、文字セットlatin1_swedish_ci(別名latin1)です。表中のキーワードと呼ばれるこのテキスト列フィールドに挿入する必要がUTF-8形式で:"不正な文字列値:" latin1列にUTF8テキストを挿入するとMySQLの問題が発生する
は今のところ、この着信コンテンツ(「\ ud55c \ ubc24 \ uc758」文字列)があります。
私はINSERTを実行しようとすると、私はこのエラーを取得:
Incorrect string value: '\xED\x95\x9C\xEB\xB0\xA4...' for column 'keywords' at row 1
私は以下のようにUTF8からISO-8859-1に変換しようとする私のJavaコードでの方法のすべての種類を試してみましたそして、私はまだ同じエラーを取得しています:
String convertedString = new String(originalString.getBytes("UTF-8"), "ISO-8859-1");
私はlatin1のからUTF8にMySQLのテーブルの文字セットを変更するには言及してStackOverflowの上のソリューションがあります知っている、これはライブプロダクションですので、私は、残念ながらそれを行うことはできませんMySQLのマスターサーバーはまた、歴史的に私たちのlatin1を使用します。
この「不正な文字列値」エラーを修正する提案がありますか? UTF8文字列内の文字もLATIN1での表現を持って起こる...とlatin1のは小さなシングルバイト文字である場合を除き
おかげ は、あなたは、単に何をしようとして
Java_をusc2からutf8に変更する必要があります。 'ISO-8859-1'は、あなたが見せているものには何も関係していません。あなたは「一泊」を望んでいた、正しい?こんにちはジェームズ、速い返答のために感謝します。 –
usc2からutf8にエンコードを変更するとどういう意味ですか?申し訳ありませんが、私はフォローしていません。そして、はい、私は一泊に行きたいです – user1805458
これは、古いUnicodeのテキストを別のMySQLデータベース(utf-8)から読み込み、このlatin1 MySQLデータベースに書き込む古いPythonスクリプトでしたが、このテキストには私のJavaコードで "\ ud55c \ ubc24 \ uc758"を "í•ë¤"〜 "に変換する方法を理解できれば、私は良いです – user1805458