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);
}
一切正常:)
数据库基于 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);
}
一切正常:)