如何解决浏览器未在codeigniter-3中打印硬编码的波斯字符
我正在尝试通过以下方式打印网址:
$ url =(isset($ _ SERVER ['HTTPS'])&& $ _SERVER ['HTTPS'] ==='on'吗?“ https”:“ http”)。 “://:// $ _ SERVER [HTTP_HOST] $ _SERVER [REQUEST_URI]”;
它可以正常打印英文网址,但波斯语网址显示如下:
<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部分与存储的段urldecode(auto_link($ url))进行比较;工作正常,但我需要打印它们以显示规范的URL
-
我的服务器主机是RHEL 7,我正在使用php 5.6,php.ini 配置是:
; PHP的默认字符集设置为UTF-8。
; http://php.net/default-charset
default_charset =“ UTF-8”
-
有关更多信息->我在codeigniter 3中具有设置 config.php为:
$config['charset'] = 'UTF-8';
-
我在html头中声明如下:
-
也在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)?>"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。