为什么我不能在Codeigniter中读取带有中文字符的输入值?

时间:2011-08-20 08:10:43

标签: php codeigniter unicode

我将类似'测试'的值传递给我的表单,然后通过执行此操作来获取值:

$this->input->post('field_name');

我发现我无法取回'测试'的价值,我一无所获。

我的版本是2.0.2,$config['charset'] = 'UTF-8';

如果我echo('測試'),则没有问题。

拉丁字符有效,打印效果很好。我该如何解决?

代码来自表格:

表格

<form target="sc_light_box" action='http://localhost:8888/my_project/index.php/data/add_data.php' method="post">
<textarea id="field_name" name="field_name"/>
<input type="submit" id="submit_button">
</form>

控制器:

public function add_data()
{
       $this->_load_add_data_page();    
}  


private function _load_add_data_page()
{   
    $this->load->library('form_validation');  
    $this->load->library('table');
    $this->load->helper('form'); 

    $data['field_name']              =$this->input->post('field_name');


    $this->load->view('add_data_page_view', $data);    
} 

观点:

      <?php echo $field_name?>

3 个答案:

答案 0 :(得分:2)

我已通过将配置文件字符集值更新为简单字母来解决此问题。

之前

$config['charset'] = 'UTF-8';

我改为:

$config['charset'] = 'utf-8';

现在效果很好。

答案 1 :(得分:0)

我终于解决了,你需要 在发布之前使用javascript encodeURI函数来编码数据。

答案 2 :(得分:0)

在配置文件中设置charset,如下所示 -

$config['charset'] = 'utf-8';

然后在页面顶部使用以下标题,您需要在该页面中显示/打印/输入您的unicode文本 -

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

您也可以将此标题一般设置到索引页面中。