utf-8 mysql içerik ve umlauts ile json_encode

1 Cevap php

ben burada Sorunu bulmaya çalışırken büyüyen sakalımı hissediyorum.

Temel Sorun Sesli harfler / Özel İşaretler ÁÖß ... çalışmıyor olmasıdır. Ben herkesin bu soruların hasta ve yorgun olduğunu, ancak çevrimiçi bulunan tüm çözümler işe görünmüyor sanırım.

Im bir utf-8 MySQL Veritabanı utf-8 içeriğe sahip. Ben bir yerde Veritabanı bağlantısı Sorunu ist hissediyorum ama sadece anlamaya olamaz.

character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8

Sorun character_set_server için latin1 eğer Im emin değil im değil mysql şeylerle çünkü. Ben de ben mysql sunucunun yapılandırma dosyalarına erişemez neden değiştirmek için nasıl bilmiyorum.

Ne olursa olsun ben veritabanından benim sonuçlar almak ve echo, print_r doğru sonuç verir, beni karıştırıyor.

ini_set('default_charset','utf-8');
header('Content-Type: text/plain; > charset=utf-8');

Firefox karakter kodlama utf-8 olduğunu söylüyor ama ne zaman eğer ben çıkışı:

print_r($listnew);
echo json_encode($listnew[5]);

print_r her şeyi doğru sonuçları ancak yanlış json_encode yapar.

print_r:

[5] => Array (
       [id] => 5
       [data] => U-Bahnhof Theresienstraße
       [size] => 17
)

json_encode:

{"Id": 5, "data": "U-Bahnhof Theresienstra \ u00dfe", "boyut": 17}

i json_encode düzgün orada çalışmak için utf-8 dizesi ihtiyacı olduğunu biliyorum ve ben burada bir kodlamak sorun yaşıyorsanız im hissediyorum ama nerede olduğunu ben sadece dışarı firgure olamaz.

Herhangi bir yardım mutluluk duyacağız,

şimdiden teşekkürler.

i3

1 Cevap

Ummm ... Ben aslında correct yol olduğunu düşünüyorum. \u00df doğru bir Unicode temsilidir ß. Ne zaman json_decode() geri, o ß tekrar olacak.

Nerede bu sizin için sorun yapıyor? Uç alma düzgün çözme değil mi? Bu standart kullanırsanız json_* fonksiyonlar gerekir.

manual aynı şeyi gösteriyor tüm örnekler - ASCII aralığının ötesinde karakterleri sayısal dizilerine dönüştürülür.