2015-07-23 4 views
1

Да, я знаю, что должен использовать UTF-8, но мне нужно использовать кодировку кодировки windows-1252.Как мне заставить Laravel указать мою кодировку во всех ответах?

Я знаю, что могу сделать это жестко прописывать базовый ответ Synfony класс Response.php,

$charset = $this->charset ?: 'windows-1252';

но это некрасиво, как ад.

Я не могу найти, где его установить из конфигурационных файлов. Любая помощь?

ответ

3

Вы можете изменить кодировку в ПО промежуточного слоя:

<?php namespace App\Http\Middleware; 

use Closure; 

class SetCharset 
{ 
    public function handle($request, Closure $next) 
    { 
     $response = $next($request); 
     $response->header('Content-Type', 'text/html; charset=windows-1252'); 

     return $response; 
    } 
} 

Просто убедитесь, что все содержимое вы возвращаетесь в правильной кодировке.

+0

Это не работает ... Может быть, промежуточное программное обеспечение меняет кодировку ПОСЛЕ того, что заголовки установлены? – Amarnasan

+0

Включили ли вы промежуточное ПО в Kernel.php? Не могли бы вы убедиться, что он запускается путем выполнения dd ('test') в методе дескриптора? –

+0

Да, на самом деле я вижу, что кодировка успешно изменилась: #charset: «windows-1252» – Amarnasan