php yerine ï ¿½ çıkışları -

6 Cevap

i veritabanından almak zaman örneğin yerine programın gösterildiği olurdu ne kelime programın programlar. '- Ve değişiklikler. ben bu nasıl düzeltebilirim?

6 Cevap

Sen iso-8859-1 gibi cp-1252 tedavi edilir. Diyor o kadar zaman A very common mistake., kullanıcı size geçerli iso-8859-1 verdiği standart olan UTF-8 kullanın, ya da sağlamak için giriş doğrulamak. Eğer (örneğin cp-1252 olsun), siz iso-8859-1 girişi transliterate olabilir vermeyen olgularda.

Yedek karakteri (U + fffd) verilerinizin doğru kodlanmış anlamına gelir. Muhtemelen UTF-8 olarak çıktı ilan edilir ancak veritabanı veri UTF-8 kodlanmış değildir. Yani UTF-8 veri dönüştürmek gerekir. Sen mb_convert_encoding bunu yapmak için kullanabilirsiniz.

Veri UTF-8 olarak depolanır? Eğer herhangi bir veri alıp önce bu sorguları yürütme deneyin:

SET NAMES utf8
SET CHARACTER SET utf8

Ayrıca size sayfa kodlamasını ayarlama emin olun:

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />

Bu karakter kodlama bir konudur: yere hattı boyunca karakter kodlaması yanlış yorumlanıyor. Burada size o sayfayı çıkış yaparken temelde geriye doğru çalışma, kontrol etmelisiniz alanları şunlardır:

Sayfayı çıktı zaman, (tercih) sunucusundan veya HTML ya, uygun bir içerik türü başlığı dahil edilmelidir:

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

Eğer veritabanına bağlanmak zaman, (Bu kullandığınız tabloları kodlayan ne ilgisi olduğunu unutmayın) ve komut verileri gönderirken kullanmak için ne kodlama veritabanını söyler SET NAMES sorgusu verilmesi gerekmektedir.

SET NAMES utf8;

Sizin tablolar kendilerini "doğru" karakter kodlaması olarak tanımlanmış olmalıdır:

CREATE TABLE foo (...) CHARSET=utf8;

Zaten latin1 ve onları dönüştürmek isteyen kullanarak tabloları oluşturdu ettiyseniz, siz sorunu kalmıyor, bir ALTER TABLE CHARSET değiştirmek için değil, aynı zamanda olacak değiştirmek için CHARSET, her sütun için metinsel (TEXT, CHAR, VARCHAR).

Bütün bunlar doğru görünüyorsa, problem "in yolda" meydana gelmiş olabilir Yani veritabanına bu veri gönderen bir form var varsayarak,, sen de meydana güncelleştirme gerekir (Content-Type ve SET NAMES).

Bu bir karakter seti sorunu gibi, veritabanı ve web sayfası aynı charset kullanarak (ya da aralarında dönüştürmek gerekir) gerekir geliyor. this article Yazılım Joel dışarı atın. Bu kesme bir kıvırcık kesme işareti gibi görünmektedir, ve benim şüphe çizgi bir em tire veya benzer olmasıdır.

Farklı karakterler, örneğin Mark'ın evi ve Mark'ın ev kullanımı neden olabilir, genellikle MS kelime ve rahatsız edici diğer kelime işlemciler, o karakter olsun

Edit: Whops, ben yığın taşması oto ... karakterini düzeltir görmek benim açımdan varlık, sen kesme işareti düğmesine bastığınızda kelime işlemcileri farklı karakterler yaratmak