Codeigniter:如何使用url将UTF8参数传递给控制器​​?

时间:2019-04-25 07:57:46

标签: php codeigniter url utf-8 codeigniter-3

我正在使用代码点火器3,需要使用URL参数将参数传递给控制器​​。我的网址是这样的:

http://192.168.40.50/user/list/محمد

我将其添加到配置文件中:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-|آ-ی';

我的控制器是这样的:

public function list($name)
{ 
    // The $name parameter is incorrect here
    // In this case $name = 'E-E'
}

问题是我收到的是“ E-E”而不是“محمد”。

我只是搜索了很多问题,但没有找到解决方法

َ更新

我正在使用路由。参数正确传递而没有路由,但是当我添加路由时,UTF-8字符已更改。我的路线就是这样:

$route['user/list/(:any)'] = 'user/list_of/$1';

1 个答案:

答案 0 :(得分:0)

Phil Sturgeon解释了广泛允许使用UTF-8:这是摘录,后面是全文链接:

在index.php中设置HTTP标头 对CodeIgniter的所有请求都是通过index.php文件发出的,该文件默认位于system /文件夹之外。因此,它是为我添加PHP标头的理想场所。

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

告诉CodeIgniter发生了什么事 默认情况下,CodeIgniter的大部分内部功能都设置为使用UTF-8,因此只需确保在application / config / config.php文件中将字符集设置为UTF-8。

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

配置数据库连接

$db['default']['char_set'] = "utf8"; $db['default']['dbcollat'] = "utf8_unicode_ci";

这时您应该能够使用UTF-8字符,如果您想将其保存到我正在使用的数据库中,请继续使用此链接继续阅读:

USING UTF-8

您还可以参考以下stackoverflow文章: Using UTF-8 Stackoverflow