PHP / MySQL: veritabanı karakter seti sorunu Ekle verileri

3 Cevap php

Başka bir sayfadan metin getirir ve veritabanına eklemek bir web sitesi inşa ediyorum.

Sorun tüm özel karakterler öylesine sonra kullanarak çıkış dönüştürmek için gereken HTML kodlamayı kullanarak veritabanına kaydedilir olmasıdır:

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />

Yani, ne şu anda sahip yerine sadece karakter "&#x27;" veritabanına kaydedilir "'" html sürümü tasarrufu olduğunu. Ispanyolca karakter veya başka bir özel olanları kaydedilir zaman da gerçekleşir. Bunun yerine ejample için harfi "ñ", ben kaydedilen "&ntilde;" olsun.

Ayrıca bu atıklar veritabanında alan ve daha sonra içerik türünü böylece kullanarak çıkış dönüştürmek gerekir:

Nasıl sadece dönüştürmek ya da daha önce kaydedilen charset ayarlamak ya da sadece MySQL dönüştürmek izin verebilirim?

Eğer burada ben veritabanına bağlanmak nasıl bilmek gerekir:

function dbConnect() {      
    $conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die ('Error.');
    return $conn;
}

    $conn = dbConnect();
    $stmt = $conn->stmt_init();

Hope you can help me!! Thanks.

3 Cevap

İngilizce olmayan karakterler varsa ben UTF-8 kullanmanızı öneririz. Sen SQL çalıştırabilirsiniz

SET NAMES UTF-8

Eğer dBASE bağlanmak hemen sonra UTF-8 içinde dbase bağlantı yapmak.

Bunu yaparken verileri kaydedilirken, siz "htmlspecialchars" veya "htmlentitiesi" kullanmak gerekir.

Belki htmlspecialchars rather that htmlentities where the first just replaces the HTML special characters &, <, > ve " kullanmak gerekir değil ikincisi yaptığı gibi adlandırılmış bir varlık karakter başvurusu ile temsil edilebilen her karakter.