我正在使用代码点火器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';
答案 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字符,如果您想将其保存到我正在使用的数据库中,请继续使用此链接继续阅读:
您还可以参考以下stackoverflow文章: Using UTF-8 Stackoverflow