浏览器不在 codeigniter-3 中打印硬编码的波斯字符
Browser is not printing hard coded persian characters in codeigniter-3
我正在尝试使用以下方法打印 URL:
$url = (isset($_SERVER['HTTPS']) && $_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 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)?>"/>
我正在尝试使用以下方法打印 URL:
$url = (isset($_SERVER['HTTPS']) && $_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 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)?>"/>