laravel:当提交以UTF-8编码的表单时,它将转换为java数据类型

时间:2014-07-02 21:37:34

标签: forms encoding laravel utf-8 character-encoding

我正在使用laravel 4.2。我正在学习laravel,并发现自己陷入了一个问题,我已经尝试过很多论坛,我没有找到任何答案。 我的问题如下: 我将此表单嵌入到php视图文件中:

     {{Form::open(['route'=> 'home.store'])}}
 <div class="container col-xs-5 ">
    <form class="form-horizontal">
        <div class="form-group col-xs-8">
            <!-- Split button -->
        <div class="btn-group">
         <select name="country" class="btn btn-success dropdown-toggle" >
             <option disabled selected>Escoger Pa&iacute;s</option>
             <option>Argentina</option>
             <option>Bolivia</option>
             <option>Chile</option>
             <option>Colombia</option>
             <option>Costa Rica</option>
             <option>Cuba</option>
             <option>Ecuador</option>
             <option>El Salvador</option>
             <option>Guatemala</option>
             <option>Honduras</option>
             <option>M&#233;xico</option>
             <option>Nicaragua</option>
             <option>Panam&#225;</option>
             <option>Paraguay</option>
             <option>Per&#250;</option>
             <option>Puerto Rico</option>
             <option>Uruguay</option>
             <option>Puerto Rico</option>
             <option>Rep&#250;blica Dominicana</option>
             <option>Venezuela</option>
         </select>
        </div>
    </div>
</div>
{{Form::close()}}

现在,在home.store我有:

$user-> country = Input::get('country');

这意味着要存储在数据库表中,该字段名为“country”,其类型为ENUM,其选项与表单相同。当我选择没有ansi字符代码的选项时,它完美地工作。但是,当我选择包含西班牙语代字号(')的选项时,它在ansi代码中设置,它们无法存储在数据库中。

现在,检查我在home.store中使用的输入:

return Input::all();

它输出:

{"_token":"ofyHW7ElogegKJwMXQL3HsbugCSnRxbtkm0GVQ8y","country":"Per\u00fa"}

我可以将问题识别为:acsii code&amp;#250被翻译为java \ u00fa。 我已经检查了框架中的任何地方(FormBuilder.php和HtmlBuilder.php),看看是否有东西被定义为laravel中的java但是一切都设置为UTF-8,所以作为数据库,以及html中的元标记view(浏览器也设置为utf-8)

我非常感谢任何人的帮助。

非常感谢你。

0 个答案:

没有答案