浏览器未在codeigner-3中打印硬编码的波斯字符



我正在尝试使用以下方法打印URL:

$url=(isset($_SERVER['HTTPS'](&amp$_SERVER['HTTPS']==='on'"https":"http"("://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";;

它打印英语URL很好,但波斯语URL显示如下:

<link rel="canonical" href="https://www.example.com/8897-%D8%A7%DB%8C%D9%86%D9%B9%DB%8C%DA%A9-%D8%B1%D9%88%DB%8C%D9%86%D8%AC?lang=per"/>

尽管从数据库中选择的字段打印如下:

<title>اینٹیک روینج</title>

但当保存在php文件中时(硬编码(会变成??????保存后。

的快照如下:

<title>اینٹیک روینج</title>------->这是从数据库中选择的波斯脚本

<meta property="og:title" content="??????????">------>这是上面的波斯脚本,直接保存在这个php文件中

<link rel="canonical" href="https://www.example.com/7657-%D8%A7%DB%8C%D9%86%D9%B9%DB%8C%DA%A9-%D8%B1%D9%88%DB%8C%D9%86%D8%AC?lang=per"/>----->这是我们从URL 中捕获的波斯脚本

尽管要将URL部分与存储的slug URL解码(auto_link($URL((进行比较;工作正常,但我需要打印它们以显示规范的URL

  1. 我的服务器主机是RHEL 7,我使用的是php5.6、php.ini配置为:

    PHP的默认字符集设置为UTF-8。

    http://php.net/default-charset

    default_charset=";UTF-8";

  2. 有关详细信息->我有代码点火器3中的设置config.php为:

    $config['charset']='UTF-8'
  3. 我在html标题中声明如下:

  4. 同样在php中,我已经声明

    header('Content-Type:text.html;charset="utf-8"'(

要打印您的URL:https://www.example.com/8897-اینٹیک-روینج?lang=per

使用此

$url = urldecode((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");

<link rel="canonical" href="<?=$url?>"/>

或者你可以在单行中完成

<link rel="canonical" href="<?=urldecode($url)?>"/>

最新更新