Büyük bir CSV dosyasına sahibim, bunu bir MySQL tablosuna yükleyeceğim. Ancak, bu veriler utf-8 biçiminde kodlanmıştır, çünkü bazı ingilizce olmayan karakterler içerir. Tablodaki ilgili sütunun karakter kümesini utf-8 olarak ayarlamıştım. Ama dosyamı yüklediğimde. ingilizce olmayan karakterler tuhaf karakterlere dönüşür (tablo satırlarımda bir seçim yaptığımda). Verilerimi tabloya yüklemeden önce kodlamam gerekir mi? eğer evet bunu nasıl yapabilirim. Verileri yüklemek ve LOAD DATA LOCAL INFILE komutunu kullanarak Python kullanıyorum. Sen göndermesi gerektiğini sayesindeutf-8 kodlu metni MySQL tablosuna yükleme
http://dev.mysql.com/doc/refman/5.1/en/load-data.html dediği gibi
18
A
cevap
13
, size CSV kullandığı charset "KARAKTER SET" LOAD DATA isteğe bağlı parametre YEREL INFILE
2
dosyasını belirtebilirsiniz
init_command = 'SET NAMES UTF8'
use_unicode = True
charset = 'utf8'
MySQLdb.connect() yapıyor
dbconfig = {}
dbconfig['host'] = 'localhost'
dbconfig['user'] = ''
dbconfig['passwd'] = ''
dbconfig['db'] = ''
dbconfig['init_command'] = 'SET NAMES UTF8'
dbconfig['use_unicode'] = True
dbconfig['charset'] = 'utf8'
conn = MySQLdb.connect(**dbconfig)
düzenleme: ah, üzgünüm, bkz size "LOAD DATA LOCAL INFILE" kullanmakta olduğunuz kattık -
62
deneyin bu başlangıçtaki soruya :) dan belli değildi
2
Karakterlerinizi dosyada kodlamanıza gerek yoktur, ancak bu dosyayı veritabanına yüklemeden önce dosyanızın UTF-8'de kodlandığından emin olmanız gerekir.
kabul edilen yanıt olmalıdır – memical
ekleyerek "CHARACTER SET UTF8" anahtarı oldu! – nemnesic
Oh, beni çok uzun sürdü. Her şeyi denedi, sadece utf8'i latin'e dönüştürerek utf 8'lik bir tabloya aktarmaya devam etti. Kodlama seçeneği harikalar çalıştı. – John