Laravel 4.2 应用程序编码从 UTF8 到 iso-8859-1

Laravel 4.2 application encoding from UTF8 to iso-8859-1

数据库基于 MSSql,Laravel 正在成功与其对话。数据库基于 latin2 编码,因此我的 Laravel 应用程序必须是 iso-8859-1 而不是 UTF-8。似乎整个 laravel 都在喊 UTF8。我在配置文件中找不到任何内容。

我已将连接字符串中的数据库编码更改为 lating1,但仍然没有任何改变。

当从 VB 桌面应用程序创建一个条目时(我的同事正在处理那个)并且他将一个 £ 符号保存到数据库中,它在那里很好,尽管当我尝试阅读它时它给出了我 � 符号。

另一方面,如果我从 Form::open 标签在数据库中创建一个条目,那么 £ 会以一些奇怪的东西作为前缀!

我还添加了 <meta charset="iso-8859-1"> 到网站的 html 标签,但是当我进入 firefox 查看页面信息时仍然告诉我该网站是 UTF8 格式的。我尝试将一些文件更改为西方编码(Sublime 另存为 -> 带格式),如 index.php、routes.php,但网站仍然显示为 UTF8...

任何帮助/建议将不胜感激。

为了解决这个问题,我做了以下工作:

  • 在第 106 行
  • 中更改了表单助手 /project/vendor/laravel/framework/src/llluminate/Html/FormBuilder.php

这个:

$attributes['accept-charset'] = 'UTF-8';

至:

    $attributes['accept-charset'] = 'latin1';

这样所有的表格都输入了数据库正确的符号。 在此之后,由于我的应用程序不大,我创建了帮助程序来将给定的字符串从 lating1 转换为 UTF8,如下所示:

public static function convertToUtf8($string){
    return $converted = iconv ('latin1' , 'utf-8' , $string);
}

一切正常:)