Yabancı karakterler mysql çöp dönüşmesi

3 Cevap php

Benim web sayfasında aşağıdaki satırı var ABD'de duyuyorum:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Ve benim MYSQL tablo MyISAM latin1_swedish_ci

Ama birisi çöp olarak MySQL saklanan alır yabancı bir karakteri ile bir formu doldurduğu zaman. Bir örnek vb üzerine aksanı ile bir e olurdu - bir şey normalde Amerikan İngilizcesi kullanılmamıştır. Birisi bir garip kesme kullanır bile, onun olsun çöp dönüştü:

milletin

dönüştü alır:

nationâ € ™ s

Ben orada düzenli kesme kullanıyorum ama fikir olsun. Yabancı karakterler 3 çöp karakter dönüşür. Lütfen yardım edin! TIA

3 Cevap

Için belgenin başlık değiştirmek ya

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

veya - daha - senin tablo 'karakteri UTF-8 ayarlanır değiştirin. Sadece tablo 'harmanlama değiştirmek, tamamen önemsiz değildir yapmak için hile yapmayacağım. This SO question bazı öneriler verebilir.

Bu veritabanına girilen veriler utf8 gibi geliyor bana. Bu latin1 dönüştürülmesi gerekir (sizin sütunun karakter takımı olduğundan) ve bu bir yukarı üç latin1 karakter verebilir tabloya koymak için.

Pekka sadece beni dövmek - onun çözümü bu sorunu düzeltmek için çalışmalıdır.

Ben sqlserver aynı davayı hatırlıyorum bu konunun yararlı olacağını umuyoruz.

Bu iki veri türü varchar [8 bit] ve NVarChar [16 bit] vardır.

Şimdi Chines gibi 16 bit komut karakterleri depolamak değil varchar kullanarak, Hint vb Eğer 16 bitlik bir karakter saklayabilirsiniz Nvarchar yani veri türünü kullanmak zorunda.