2010-07-04 19 views
5

utf8 metin alan MySQL tabloları ile bir PHP web uygulamasına sahibim. Son zamanlarda verileri latin1'den utf8'e kadar tablo ve sütunları da buna göre dönüştürdüm. Ancak, mysql_set_charset'i ve en son gelen veriyi latin1 olarak MySQL bağlantısından geldiğini farz ettim. Latin1 bir utf8 sütununa geldiğinde ne olur bilmiyorum, ama bu, virgül, tırnak işareti, ve işareti gibi öğeler için bazı garip görüntü sorunlarına neden oluyor.latin1 kodlanmış metni utf8 tablolarına ekleme (mysql_set_charset'i kullanmayı unutma)

Şimdi mysql_set_charset yerindeyse, veriyi çekiyor. korkak karakterler ile dışarı. Latin1-utf8 çorbayı doğru utf8'e dönüştürmenin herhangi bir yolu var mı, şimdi doğru karakter kümesini kullanarak veritabanı bağlantı kaynağım var mı?

+0

Sizi test etmek ve cevabım olarak satmak için çok tembel .. http://www.mysqlperformanceblog.com/2007/12/18/fixing-column-encoding-mess-in-mysql/ size yardımcı olmalı (bazı Orada da güzel yorumlar. Eğer sadece set_charset() 'un eksik olduğu zamanlar/satırlar eklendiyse, bu satırları pratikte herhangi bir şey kontrol etmeden pratikte dönüştürebilirsiniz. Kullanmadan önce – Kuchen

cevap

4

Fikrinizi yorumunuzla birlikte bulabilirsiniz. İşte benim sorunumu çözmüş gibi görünen SQL hattıydı. Sütun UTF8 olsa

UPDATE table SET col = CONVERT(CONVERT(CONVERT(col USING latin1) USING binary) using utf8); 

, o kadar latin1 dışarı veri çekme ikili dönüştürmek, utf8 dönüştürmek ve yeniden insert onu zorlar.

+0

kopya tablo, hwo biliyorum –

İlgili konular