Langkah 1: Mula-mula semak konfigurasi asas kod anda sendiri
1 Adakah anda telah menambah characterEncoding=utf-8, seperti yang ditunjukkan dalam rajah di bawah:
Jika anda mendapati ia tiada, jangan lihat sahaja, tambahkan dengan cepat
2.web Adakah .xml dikonfigurasikan dengan penapis pengekodan, seperti ini Sangat bertimbang rasa)
<!-- 配置编码过滤器 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter>
Langkah 2: Apabila anda mendapati tiada masalah dengan kedua-dua di atas? fail, mari kita lihat fail konfigurasi ini.
1 Lihat format pengekodan pangkalan dataMula-mula log masuk ke pelayan, masukkan pangkalan data anda dan log masuk ke. arahan pangkalan data (nama pangkalan data di bawah merujuk kepada nama pangkalan data yang anda buat, seperti ujian):
mysql - u root -p nama pangkalan dataKemudian laksanakan arahan berikut untuk menyemak format pengekodan pangkalan data andatunjukkan pembolehubah seperti ‘char%’;Ia adalah latin1 yang menyebabkan masalah, jadi bagaimana untuk menyelesaikan masalah ini ? Jangan sabar dan teruskan membaca.
2 Ubah suai fail konfigurasi dalaman mysql
Pertama sekali, izinkan saya nyatakan bahawa pakej pemasangan mysql rasmi yang dimuat turun terbaharu nampaknya tidak mempunyai my.ini, tetapi ia mesti mempunyai fail my.ini cnf, pada masa ini anda harus pergi ke pelayan anda untuk melihat di mana ia biasanya berada di bawah dll/ dalam direktori akar. Baris arahan: vim my.cnf[Teras] Jalankan arahan i untuk memasuki mod penyuntingan, dan tambahkan ayat berikut di bawah [mysqlid], Juga Iaitu, format pengekodan aksara Cina serasi dengan
character-set-server=utf8
: Perintah wq menyimpan dan keluar.
3. Mulakan semula mysql dan anda selesai
Saya melaksanakan kedua-dua pelaksanaan ini di bawah tong dalam direktori akar untuk berhenti dan memulakansystemctl stop mysqld.service systemctl start mysqld.service
Kemudian Anda dengan bangganya boleh log masuk ke mysql dan laksanakan arahan di atas untuk menyemak format pengekodan pangkalan data anda
show variables like ‘char%';
Bukankah ia mengejutkan dan tidak dijangka, hahahaha.
Akhirnya, selepas usaha yang tidak putus-putus, saya akhirnya memasukkan data Cina Hahahaha, saya benar-benar meyakinkan diri saya bahawa saya ingin memindahkan wang kepada diri saya sendiri.
Selesai MasalahAksara Cina yang disimpan dalam mysql menjadi tanda tanyaSenario projek
mySql 5.7javaFail konfigurasi: spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useSSL=falseKendalian sisip :@Insert("INSERT INTO foods(food_name,food_taste,food_price,food_description) VALUES (#{foodName},#{foodTaste},#{foodPrice},#{foodDescription})") int insert(Food food);
Analisis sebab:
Tetapan untuk menyambung ke pangkalan data memerlukan set aksara
PenyelesaianPenyelesaian: Tambah Data useUnicode=true&characterEncoding=UTF-8spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=UTF-8&useSSL=false
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah apabila memasukkan data Cina ke dalam mysql menjadi tanda tanya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!