â, ¬ karakter olarak gösterilir?

6 Cevap php

Ben bir web sitesi yeniden düzenlendi ve şimdi xhtml geçerli etc ve UTF8'i kullanarak. Her şey gayet iyi, ama her yerde Veritabanında bir Euro-simsiyah o ise sadece bir questionmark olarak görüntülenir.

What would be the right way to fix this? As output is done by Typo3 i cant change much about that.

6 Cevap

Bu sorguları yürütme try before veri alıp sorgular:

SET NAMES utf8
SET CHARACTER SET utf8

Bu yanlış veritabanı bağlantısı kodlama kaynaklanıyor olabilir

Arama SET İSİMLERİ sql deyimi

    $db_link = mysql_connect($host,$user,$passwd);
    mysql_query("SET CHARACTER SET 'utf8';", $db_link);
    mysql_query("SET NAMES 'utf8';", $db_link);

DON'T issue both statements!

Sorunu yok

SET NAMES utf8
SET CHARACTER SET utf8

birbiri ardına. Bu sorun neden olabilir. Zaten SET İSİMLERİ utf8 sonra SET KARAKTER SETİ utf8 hakkı ile kötü bir deneyim oldu.

Ben sadece SET NAMES ... vermek için tavsiye

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html: MySQL docs açıklamalar neden vardır

Kısacası: SET NAMES ... istemci ans sonuç charset aynı ile bağlantının karakter kümesini belirler. SET CHARACTER NAME..., farklı bağlantı charset ve harmanlama kurarken.

Doc okuyunuz ve sizin durumunuzda daha iyi hangisi bu karar. Ya da daha iyi bir test yapmak.

Eğer € işaretini içeren veritabanı sütununun ne charset (kodlama, harmanlama, ...) kullanıyorsunuz?

The problem could be that your data stored in this column ist mixed up because the € sign is a somehow difficult beast when not using UTF-8 character encoding. The problem ist that the € sign is encoded as \xA4 when using ISO-8859-15 and as \x80 when using Windows-1252 (the common Western-European charset on Windows machines). If your data inside the column is not encoded correctly MySQL won't be able to transcode it into UTF-8 correctly - even if you use SET NAMES utf8.

Eğer doğru karakter veri olduğundan emin değilseniz (0x20AC), o da onun istemci tarafında ont yazı tipleri olabilir. Kullandığınız yazı tipi belirli bir karakteri işlemek değil, sadece bazı varsayılan soru işareti görürsünüz.

€: Ancak, neden size verir çıkış kodu €, kullanmayın

Alkış,

Gibi bir şey deneyebilirsiniz

$value = iconv('ISO-8859-1', 'UTF-8//TRANSLIT', $value);

"ISO-8859-1" bölümü MySQL tablo karakter kodlama bağlı olarak farklı olabilir.