UTF-8, ISO-8859-1'den web kodlama Anahtarı

2 Cevap php

UTF-8 kodlaması kullanmak için mevcut PHP web sayfasını dönüştürmek çalışıyorum.

Bunu yapmak için, ben aşağıdaki şeyleri yaptım:

  1. Benim web sayfasının başında meta içerik etiketinde charset UTF-8 belirtildi.
  2. php.ini içinde UTF-8 default_charset değiştirin.
  3. php.ini dosyasında iconv kodlaması olarak UTF-8 belirtildi.
  4. . kullanarak benim htaccess dosyası UTF-8 belirtilmiş: AddDefaultCharset UTF-8.

I () mb_internal_encoding echo Ancak tüm bu sonra, ISO-8859-1 olarak gösterir. Ben burada ne eksik? Ben UTF-8 için varsayılan kodlamayı değiştirir bir komut dosyası eklemek için auto_prepend kullanabilirsiniz biliyorum, ama ben sadece eksik olduğunu anlamaya çalışıyorum.

Teşekkürler

2 Cevap

multibyte string functions ve POST dönüşüm ve girdiler GET kullanırken mb_internal_encoding() betiklerinizden başına çıkışını etkilemez, bu default kodlama etkilemektedir.

Basitçe seti

mbstring.internal_encoding='UTF-8'

Lütfen php.ini dosya veya program ile:

mb_internal_encoding('UTF-8');

MB_ fonksiyonları konuşma, sen bu, örneğin kullanmak için komut yeniden yazmak gerekir mb_strlen() yerine strlen.(), vs

Yaptığın ne ok olmalıdır olsa da, HTTP içerik türü başlıklar çıkış yapıp ne edin.

Eğer bir veritabanı kullanıyorsanız, aynı zamanda da bu dönüştürmek için var, ve ona bağlanma zaman UTF-8 kullandığınızı belirtmek gerekir.

Belgelere kullanarak bu değişkeni SET bildiren

/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

sorunun kurtulmak hangi :)