CodeIgniter и кодировка utf-8. Работа с текстом в кодировке utf-8

Codeigniter и кодировка utf-8Недавно делал проект на CodeIgniter. Пришлось столкнутся с весьма неожиданной проблемой – в настройках была опция кодировки сайта – но она не работала, и CodeIgniter полагался на настройки сервера при отображении текста. Пришлось это дело исправлять.

Способов много, я напишу о трех:

1. Самый правильный на мое мнение способ – использование хуков. Это позволит хранить название кодировки сайта в файле настроек. Для этого нужно:

  • в файле настроек config.php включить хуки
    $config['enable_hooks'] = TRUE;
  • в файле хуков создать новый
     $hook['pre_controller'] = array(
     'class'    => 'pageEncoding',
     'function' => 'headerUTF8',
     'filename' => 'pageEncoding.php',
     'filepath' => 'hooks',
     'params'   => array()
     ); 
  • создать файл pageEncoding.php в папке hooks со следующим содержанием:
    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    class pageEncoding extends CI_Hooks {
    
     function headerUTF8($params) {
     $CFG =& load_class('Config', 'core');
     header('Content-type: text/html; charset=' . $CFG->item('charset'));
     }
    
    }

Все. Должно работать хорошо.

2. Прописать настройки в файл .htaccess корня сайта

AddDefaultCharset UTF-8

но этот способ очень плохой и при переносе на другой хостинг может перестать работать.

3. Жестко прописать кодировку в файле index.php.

header('Content-type: text/html; charset=utf-8' );

Минус этого – заголовок независим от настроек сайта.

6 Comments

  1. АнтонАнтон  
    апреля 2, 2011
    REPLY))

  2. Огромное спасибо!! Помог вариант с хуками, а то при переносе на другой хостинг были одни кракозябры))

    1F

  3. strannik_kzstrannik_kz  
    июня 23, 2011
    REPLY))

  4. Большое спасибо. Пока только изучаю php, denwer…. Помогло с index.php

    2F

    рекомендую делать с помощью хуков, с index.php это быстрый вариант, но правильней будет хуками

    3F

  5. RistarRistar  
    января 9, 2012
    REPLY))

  6. Мегаспасибо за хуки!!!

    4F

  7. GhostReport » Кодировка в Codeigniter (кракозябры)GhostReport » Кодировка в Codeigniter (кракозябры)  
    июня 22, 2013
    REPLY))

  8. [...] Два других способа более сложны, но лучше. Опубликованно 22.06.2013 автором Ghost. Рубрика: IT тэги: codeigniter, framework, PHP, программирование. Добавить в закладки: постоянная ссылка. « Простые видеоуроки Codeigniter (PHP) /* [...]

    5F

  9. РафисРафис  
    августа 14, 2013
    REPLY))

  10. Спасибо большое. Сначала в созданном файле в папке хуков закрыл php код, не заработало, но потом оставил как рекомендуется. и все хорошо. также пришлось в phpdesigner поменять кодировку всех файлов видов.

    6F

Написать ответ

 Имя

 Mail

 Сайт

[Имя и Mail обязательны для заполнения. Mail не будет опубликован.]


 9fce13c8-2714-4603-b8e7-33be6c785d58