Cara membetulkan pepijat: #1977 - Tidak dapat menukar aksara 'utf8' 0xD8AD kepada 'latin1'.
P粉574695215
P粉574695215 2023-07-18 19:47:03
0
1
602

Saya bekerja dengan phpMyAdmin dan saya mempunyai nilai aksara Arab dalam lajur nama saya seperti کلب الرقيÙ'Ø© علی العزیزبوری, Saya Mahu menukarnya ke dalam bentuk yang betul.

Saya mencuba pertanyaan berikut dan ia menukar kebanyakan rekod dalam jadual ke dalam bentuk yang betul.


ALTER DATABASE alfeker_book CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE guestbook CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
UPDATE guestbook SET name = CONVERT(BINARY CONVERT(name USING latin1) USING utf8mb4);

Saya juga mencuba kaedah lain.

UPDATE guestbook SET name = CONVERT(BINARY CONVERT(name USING binary) USING utf8mb4);

Tetapi beberapa daripadanya tetap sama dan menunjukkan ralat berikut.

#1977 - Cannot convert 'utf8' character 0xD8AD to 'latin1'

Saya juga mencuba pertanyaan ini. :

SELECT id,name, CONVERT(BINARY CONVERT(name USING latin1) USING utf8mb4) AS converted_name FROM guestbook;

Pertanyaan ini berfungsi dengan baik dan memaparkan aksara yang belum ditukar dengan sempurna. Tetapi apabila saya menggunakan pertanyaan kemas kini ia tidak berfungsi.

P粉574695215
P粉574695215

membalas semua(1)
P粉460377540

Ini adalah omong kosong atau "pengekodan berganda" teks Arab.

Terdapat beberapa cara untuk membaiki data. Hanya ada satu cara untuk memperbaikinya, cara lain akan memburukkannya.

Anda lihat isu aksara UTF-8 ini; apa yang saya lihat bukanlah apa yang saya simpan dan ikuti nasihat di sana tentang mendapatkan nilai hex apa yang ada dalam pangkalan data, sebagai tambahan kepada definisi skema semasa SHOW BUAT JADUAL. Sila berikan juga SHOW VARIABLE LIKE 'char%' dan parameter sambungan.


Sebelum menyandarkan pelbagai PINDAAN dan PENUKARAN, sila berikan nilai hex dan saya mungkin memilih kaedah penukaran yang betul.


Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan